Encore une colle
J'ai besoin de calculer le STDDEV de valeurs se trouvant dans une table (QC_RES) en filtrant les données sur deux critères (TEST et QC_Lot)
Je dois placer le résultat de ce SELECT dans une autre table (QC_Val) dans le champs ETCalc correspondant à ce test et ce lot (dans QC_Val: Test et QCLot)
et ce pour chaque test d'ou la première requête.
Voici mon code:
J'ai tenté de multiples variantes aussi avec des JOIN sans meilleurs résultat
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 Query.Active:=False; Query.SQL.Clear; Query.SQL.Add('SELECT TestName FROM Tests'); // sélection du nom du test dans la liste des tests Query.Active:=true; Query.First; while not Query.eof do begin //boucle de calcul pour chaque test if (Query.FieldByName('TestName').AsString)<>'' then begin Memo3.Lines.Append(Query.FieldByName('TestName').AsString); // juste pour vérifier que la requète 1 renvoie qq chose: oui (1 ligne) //Update Query2.Active:=False; Query2.SQL.Clear; Query2.SQL.Add('UPDATE qc_val SET ETCalc = (SELECT STDDEV(result) FROM qc_res WHERE qc_lot=33501102 AND Test= '+(Query.FieldByName('TestName').AsString)); Query2.Active:=true; end; Query.Next; end;
Le système me retourne: Error Syntax; check the manual MySQL server version; je suis en 5.6.12 et ne peux pas changer pour une plus récente.
Qui peux m'aider?
Merci d'avance
Partager