salut
j'ai une requete paramétré que j'ajoute des critère à chaque fois l'utilisateur saisie des valeur dans des champs edits :
cette requete est chargé depuis un memo
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT A.MRQCOD, max(R.REFFOU) As REFFOU, M.MRQLIB,A.ARTCOD,A.ARTDES,A.ARTQTE,A.ARTPRX, A.ARTQTE*A.ARTPRX as MONTANT, MgsInt,MgsIt1,MgsIt2, A.ARTTPV,A.ARTORG FROM ARTICLE A,MARQUE M,magasin, REFERENCE R WHERE A.MRQCOD=M.MRQCOD AND R.ARTCOD=A.ARTCOD GROUP BY A.MRQCOD,M.MRQLIB, A.ARTCOD, A.ARTDES,A.ARTQTE,A.ARTPRX, MgsInt,MgsIt1,MgsIt2, A.ARTTPV,A.ARTORG
après j'ajoute les critère à ma condition selon des critères :
je sais est mon code est un peu illisible mais la finalité à la fin est qu'après ma requete affiche ses résultats sur un dbgrid
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 QNomenclature.Close; QNomenclature.Connection:=nil; QNomenclature.SQL.Clear; for i:=0 to memo1.Lines.Count-1 do QNomenclature.SQL.Add(memo1.Lines[i]); if RZTabControl1.Tabs.Items[RZTabControl1.TabIndex].Caption<> '?' then begin QNomenclature.SQL.Add('AND A.ARTDES LIKE ' + '''' + RZTabControl1.Tabs.Items[RZTabControl1.TabIndex].Caption + '%' + ''''); if typevehi.Text<>'' then QNomenclature.SQL.Add('AND A.ARTTPV LIKE ' + ''''+typevehi.Text+ '%' +''''); if organe.Text<>'' then QNomenclature.SQL.Add('AND A.ARTORG LIKE ' + ''''+organe.Text + '%' + ''''); if marque.Text<>'' then QNomenclature.SQL.Add('AND A.MRQCOD = ' + ''''+marque.Text+ ''''); end else begin if designation.Text<>'' then begin if position.ItemIndex=0 then begin QNomenclature.SQL.Add('AND A.ARTDES LIKE ' + '''' + designation.Text + '%' + ''''); if typevehi.Text<>'' then QNomenclature.SQL.Add('AND A.ARTTPV LIKE ' + ''''+typevehi.Text+ '%' +''''); if organe.Text<>'' then QNomenclature.SQL.Add('AND A.ARTORG LIKE ' + ''''+organe.Text + '%' + ''''); if marque.Text<>'' then QNomenclature.SQL.Add('AND A.MRQCOD = ' + ''''+marque.Text+ ''''); end; if position.ItemIndex=1 then begin QNomenclature.SQL.Add('AND A.ARTDES LIKE ' + '''' + '%' + designation.Text + '%' + ''''); if typevehi.Text<>'' then QNomenclature.SQL.Add('AND A.ARTTPV LIKE ' + ''''+typevehi.Text+ '%' +''''); if organe.Text<>'' then QNomenclature.SQL.Add('AND A.ARTORG LIKE ' + ''''+organe.Text + '%' + ''''); if marque.Text<>'' then QNomenclature.SQL.Add('AND A.MRQCOD = ' + ''''+marque.Text+ ''''); end end else begin if typevehi.Text<>'' then QNomenclature.SQL.Add('AND A.ARTTPV LIKE ' + ''''+typevehi.Text+ '%' +''''); if organe.Text<>'' then QNomenclature.SQL.Add('AND A.ARTORG LIKE ' + ''''+organe.Text + '%' + ''''); if marque.Text<>'' then QNomenclature.SQL.Add('AND A.MRQCOD = ' + ''''+marque.Text+ ''''); end; end; QNomenclature.SQL.Add('GROUP BY A.MRQCOD,M.MRQLIB, A.ARTCOD, A.ARTDES,A.ARTQTE, A.ARTPRX, MgsInt,MgsIt1,MgsIt2, A.ARTTPV,A.ARTORG'); QNomenclature.Connection:=DM.ADOConnection1; QNomenclature.Open;
je veux faire la somme sur les différents montants affichés, est ce qu'il existe une fonction somme qui me facilite la tache sans avoir besoin de faire une boucle qui parcours l'ensemble des enrengistrements
merci
Partager