salam
j'ai un problème avec les requête imbriqué ... pour commencer j'exécute une requête et ensuite avec le résultat de cette dernière j'exécute une nouvelle requête ... je vais vous exposez mon code pour éclairé mieux mon problème.
* la première requête s'exécute le plus normalement du monde mai la deuxième me sort une erreur "objet parameter défini de manière incorrect . des informations incohérentes ou incomplètes ont été fournies" . je vois pas pourquoi il accepte les paramètres dans la première requête et non pour la deuxième .
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 procedure TProduction.cxButton9Click(Sender: TObject); begin with rebutpre do begin sql.Clear ; sql.Add('SELECT Production.Num_Post, Production.Produit, Production.Date1, Sum(Production.Qte_Real) AS sqr, Sum(Production.Qte_Rebut) AS sr, Sum(Production.Qte_NC) AS sNC, Sum(Production.Qte_Testé) AS sqt'); sql.Add('FROM Production'); sql.Add('WHERE Production.Date1 Between :pre And :pre1'); Parameters.CreateParameter('pre', ftstring, pdInput, 0, StrToDate(pre.Text)); Parameters.CreateParameter('pre1', ftstring, pdInput, 0, StrToDate(pre1.Text)); sql.Add('GROUP BY Production.Num_Post, Production.Produit, Production.Date1'); sql.Add('ORDER BY Production.Date1'); Open; end; with rebutpreposte do begin sql.Clear ; sql.Add('SELECT Sum(ppm.sqr) AS Ssqr, Sum(ppm.sr) AS Ssr, Sum(ppm.sNC) AS SsNC, Sum(ppm.sqt) AS Ssqt'); sql.Add('FROM (SELECT Production.Num_Post, Production.Produit, Production.Date1, Sum(Production.Qte_Real) AS sqr, Sum(Production.Qte_Rebut) AS sr, Sum(Production.Qte_NC) AS sNC, Sum(Production.Qte_Testé) AS sqt FROM Production '+'WHERE (((Production.Date1) Between #1/22/2013# And #1/29/2013#))GROUP BY Production.Num_Post, Production.Produit, Production.Date1;)'); Parameters.CreateParameter('pre', ftstring, pdInput, 0, StrToDate(pre.Text)); Parameters.CreateParameter('pre1', ftstring, pdInput, 0, StrToDate(pre1.Text)); Open; end; end;
* j'aimerai bien apprendre une nouvelle méthode comme avoir le résultat du text sql et le sauvegarder dans une variable et ensuite utilisé cette variable directement dans la clause from j'ai essayé avecou
Code : Sélectionner tout - Visualiser dans une fenêtre à part SQL.TEXTmais il me donne pas le résultat final du sql mais il me donne plutôt
Code : Sélectionner tout - Visualiser dans une fenêtre à part SQL.CommaTextet moi ce que je cherche : si par exemple mon pre.text := 1/01/2013 et mon pre1:= 1/02/2013 j'aurai ce résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 "SELECT Production.Num_Post, Production.Produit, Production.Date1, Sum(Production.Qte_Real) AS sqr, Sum(Production.Qte_Rebut) AS sr, Sum(Production.Qte_NC) AS sNC, Sum(Production.Qte_Testé) AS sqt FROM Production WHERE (((Production.Date1) Between :pro And :pro1)) GROUP BY Production.Num_Post, Production.Produit, Production.Date1;"
- une petite précision j'utilise access comme base de données .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT Production.Num_Post, Production.Produit, Production.Date1, Sum(Production.Qte_Real) AS sqr, Sum(Production.Qte_Rebut) AS sr, Sum(Production.Qte_NC) AS sNC, Sum(Production.Qte_Testé) AS sqt FROM Production WHERE (((Production.Date1) Between #1/01/2013# And #2/01/2013#)) GROUP BY Production.Num_Post, Production.Produit, Production.Date1;
voila j’espère trouver une solution plus pratique parce-que j'utilise beaucoup ce genre de requête sql et j'aunai mare de tapé a chaque foi la requête a la main et merci d'avance .
Partager