Pages

Calculs sur une colonne pour estraire trois valeurs sujet

mercredi 26 mars 2014




Bonjour

Je me permets de poster à nouveau car je modifie mon appli et je passe de la lecture de fichiers ligne/ligne à SQLITE. Je me suis un peu surestimé.

J ai une table avec un champ id et un Diff
Je souhaiterais calculer l'enfoncement maxi de la colonne Diff

Actuellement je mets cette colonne dans un tabelau et procede ainsi (en delphi)

Code:


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
var
ColTrade: array [1 .. 12] of integer;
I, J, Id_Max, Id_Min, iMaxDown, Diff, Diff_Max: integer;

begin
ColTrade[1] := 12;
ColTrade[2] := 42;
ColTrade[3] := 9;
ColTrade[4] := 14;
ColTrade[5] := 4;
ColTrade[6] := 24;
ColTrade[7] := 59;
ColTrade[8] := 34;
ColTrade[9] := 9;
ColTrade[10] := -16;
ColTrade[11] := -41;
ColTrade[12] := -31;

Diff := 0;
Diff_Max := 0;
Id_Max := 1;
Id_Min := 1;

for I := 1 to 12 do
begin
Memo1.Lines.Add(inttostr(I) + #9 + inttostr(ColTrade[I]));
for J := I + 1 to 12 do
begin
Diff := ColTrade[J] - ColTrade[I];
if (Diff < Diff_Max) then
begin
Diff_Max := Diff;
Id_Min := J;
Id_Max := I;
end;
end;
end;

Memo1.Lines.Add('Id_Max ' + inttostr(Id_Max));;
Memo1.Lines.Add('Id_Min ' + inttostr(Id_Min));
iMaxDown := ColTrade[Id_Max] - ColTrade[Id_Min];
Memo1.Lines.Add('DDMAX ' + inttostr(iMaxDown));


c est à dire que je boucle sur toutes les valeurs de couples de valeurs Diff pour determiner quelle est la plus grande difference.
Je teste le couple 1/2,1/3,1/n

J aimerais savoir s il est possible de faire cela dans une reuqete
Je souhaite donc extraire le couple id/id et la valeur de cette plus grande difference

dans mon exemple (code) j extrais le couple 7/11 et la valeur 100

merci de votre aide et de vos conseils




Aucun commentaire:

Enregistrer un commentaire