UN GRAND BONJOUR POUR TOUT LE MONDE
Dans une base de données je cherche le min et le max entre trois colonne
Par exemple dans la base
Num nom_pren date1 date2 date3
Je cherche a afficher le minimum et le maximum dans les trois colonnes date
merci
Version imprimable
UN GRAND BONJOUR POUR TOUT LE MONDE
Dans une base de données je cherche le min et le max entre trois colonne
Par exemple dans la base
Num nom_pren date1 date2 date3
Je cherche a afficher le minimum et le maximum dans les trois colonnes date
merci
Bonjour,
Vous pouvez regarder du coté du CASE.
Et n'oubliez pas de préciser votre SGBD, conformément aux règles du forum.
Salut snipah
Merci pour la réponse, tu sait je suis débutant actuellement en programmation et en même temps sur le forum. Merci pour le conseil mais j'attends une réponse détaillé SVP.
note
programmation delphi5 BD dbase windows.
Je vous ai pas indiqué le plus simple en plus, regardez déjà si GREATEST et LEAST fonctionnent avec votre sgbd.
Par contre, votre explication est un peu ambigüe :Code:
1
2
3
4
5
6 SELECT Num, nom_pren, GREATEST(date1,date2,date3) AS DateMax, LEAST(date1,date2,date3) AS DateMin FROM ...
Citation:
je cherche le min et le max entre trois colonne
Citation:
Je cherche a afficher le minimum et le maximum dans les trois colonnes date
Salut mon ami
J’ai bien compris votre réponse je vais essayé et je te posterais un message demain.
Je m'excuse je ne suis informaticien j'ai appris la programmation tous seul encore je suis faible en français. Encore merci pour votre patience et votre réponse. J’essayerais prochainement d'être plus précis
Salut mon amis
Apres l’activation de la query un message d’erreur s’affiche « fonctionnalité non supportée »
j'attends ta réponse.
GREATEST and LEAST ne sont pas des fonctions reconnues par le langage SQL normalisé... et sans doute seulement par Oracle.
Une manière de le faire, sans utiliser CASE :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 SELECT num , MAX(date0) AS date_max FROM ( SELECT num , date1 AS date0 FROM matable UNION SELECT num , date2 AS date0 FROM matable UNION SELECT num , date2 AS date0 FROM matable ) AS tmp GROUP BY num
salut al1_24
message d'erreur apres l'activation mot clé incorrecte.
merci
Vous pouvez essayer avec un CASE :
Code:
1
2
3
4
5
6
7
8 SELECT num, CASE WHEN Date1 > Date2 AND Date1 > Date3 THEN Date1 WHEN Date2 > Date3 THEN Date2 ELSE Date3 END AS DateMax FROM MaTable
salut mon ami snipah
ça marche pas, je crois que j'ai trouvé la solution.
un grand merci
proposée par cantador forum delphi fr
uses Math;
procedure TForm1.MaxiDateClick(Sender: TObject);
var
Tab: array of integer;
Final : TDateTime;
const
nbreDate = 3;
begin
with MonQuery1.SQL do
begin
Clear;
Add('SELECT Max(Date1) AS MaxiDate1, ');
Add('Max(Date2) as MaxiDate2, ');
Add('Max(Date3) as MaxiDate3');
Add('FROM MaTable ');
MonQuery1.Open;
end;
SetLength(Tab, nbreDate);
tab[0] := trunc(MonQuery1.FieldByName('MaxiDate1').AsDateTime);
tab[1] := trunc(MonQuery1.FieldByName('MaxiDate2').AsDateTime);
tab[2] := trunc(MonQuery1.FieldByName('MaxiDate3').AsDateTime);
Final := StrToDateTime(DateTimeToStr(MaxIntValue(tab)));
ShowMessage(DateTimeToStr(Final));
end;