Programation SQL

Bonjour,
Aidez moi SVP,
la question imaginer un MCD pour créer des tables: et trouver la requetes en SQL qui affiche le tableau ci-dessou.

ID---------Article-----------Quatité--------Quté précédente------------------Cumul ------------Date
------------------------------------------------------------------------------------------­­-------------------------------------
1 ----------A1 -------------10------------------------0 -------------------------------10----------------01/01/08
2-----------A1------------- 60----------------------10 -------------------------------70----------------03/01/08
3-----------A1--------------20----------------------70--------------------------------90--­­--------------25/02/08
4-----------A1------------- 70----------------------90------------------------------160----------------30/03/08
5-----------A2--------------90---------------------- 0--------------------------------90-----------------03/03/08
6---------- A2--------------10----------------------90------------------------------100---------------­­ -08/03/08
7-----------A2--------------30--------------------100 -----------------------------130----------- -----30/04/08
8-----------A2------------- 40--------------------130------------------------------170------------- ---05/05/08
9-----------A3------------- 80-----------------------0--------------------------------80------------ ----15/05/08

le plus important dans ce tableau c'est comment afficher les deux colons "quantité précédente" et "cumul"
la quantité precedente N = cumul N-1;
et le cumul doit etre pour une article et pour tous les article c-à-d une fois quand on termine l'article A1 on s'arete et en commence pour article A2:

remarque : vous pouvez imaginé n'importe table, n'importe MCD:

seulement il faut afficher le tableau en SQL .
( et pas en programation que SQL)
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. salut,

    Voici un exemple :

    SELECT A.*, (Select C.Quantite From Article As C Where (C.ID = (Select Max(D.ID) FROM Article As D Where D.ID<A.ID))) As QtePrecedente, (Select SUM(B.Quantite) from Article as B Where B.ID <= A.ID) AS Cumul
    FROM Article AS A;

    bonne chance
    1. Non , la requetes et encore n'est pas resolu;

      pour simplifier un ptie peut voila les table que j'ai trouvé

      tale Article

      ART-----------intitule------------Stock
      ----------------------------------------------
      A1-----------Article 1--------------123
      A2-----------Article 2--------------145
      A3-----------Article 3--------------320
      A4-----------Article 4--------------895
      A5-----------Article 5--------------562
      A6-----------Article 6--------------023
      A7-----------Article 7--------------698

      Table Ventes

      ID-----------ART-----------quantite-------------------Date
      -------------------------------------------------------------------------
      1-----------A1-----------------20 ------------------02/ 01 /2008
      2-----------A3-----------------80 ------------------02/ 01 /2008
      3-----------A2-----------------68-------------------06/ 01 /2008
      4-----------A1-----------------10-------------------08/ 01 /2008
      5-----------A1-----------------70 ------------------16/ 01 /2008
      6-----------A2-----------------70-------------------18/ 01 /2008
      7-----------A2-----------------40 -----------------26 / 01 /2008
      8-----------A2-----------------90 ---------------- 27/ 01 /2008
      9-----------A2-----------------10 ---------------- 27/ 01 /2008
      10---------A3-----------------70 -----------------31 / 01 /2008
      ...................................................................

      ART de la table ventes c'est une clé etrangere de la table Articles.

      Alors maintenant la question c'est : Afficher le tableau c'est dessou apartir de la table VENTES ???:

      ID---------Article-----------Quatité--------Quté précédente------------------Cumul

      1 ----------A1 -------------10------------------------0 -------------------------------10
      2-----------A1------------- 60----------------------10 -------------------------------70
      4-----------A1--------------20----------------------70--------------------------------90
      5-----------A1------------- 70----------------------90------------------------------160
      3-----------A2--------------90---------------------- 0--------------------------------90
      6---------- A2--------------10----------------------90------------------------------100
      7-----------A2--------------30--------------------100 -----------------------------130
      8-----------A2------------- 40--------------------130------------------------------170
      2-----------A3------------- 80-----------------------0--------------------------------80
      1. comment ajouter des contraintes d'integrité referentielle merci d'avoir voulu m'aider