Casse-tête (SQL Serv):
Une table comme suit:
id / D1 / D2 / D3
Les 3 champs D1à3 sont des dates, comment remonter la plus grande des 3, sachant évidemment que le max ne s'applique que sur un seul paramètre
merci d'avance
Version imprimable
Casse-tête (SQL Serv):
Une table comme suit:
id / D1 / D2 / D3
Les 3 champs D1à3 sont des dates, comment remonter la plus grande des 3, sachant évidemment que le max ne s'applique que sur un seul paramètre
merci d'avance
Même si ton SGBD n'est pas ORACLE lis l'article suivant sur le ROW VALUE CONSTRUCTOR car il détaille la démarche à adopter pour les autres SGBD.
Je ne suis pas sur qu'ils'agisse de ça, Magnus. je pense que notre ami veut récupérer celui de ses 3 champs qui ait la plus grande valeur.
Voici un exemple de la manière dont je procéderai (j'ai choisi des champs NUMBER pour me simplifier la vie ...)
La requête suivante me donne bien le résultat voulu :Code:
1
2
3
4
5
6
7 SQL> create table Test (id Number(10), 2 D1 number(2), 3 D2 number(2), 4 D3 number(2)); insert into Test (id, D1, D2, D3) values (1, 3, 5, 7); insert into Test (id, D1, D2, D3) values (2, 3, 7, 8);
Code:
1
2
3
4
5
6
7
8
9
10
11
12 SQL> SELECT id, MAX (Dx) FROM 2 (SELECT id, D1 AS Dx FROM Test 3 UNION ALL 4 SELECT id, D2 AS Dx FROM Test 5 UNION ALL 6 SELECT id, D3 AS Dx FROM Test) 7 GROUP BY id; ID MAX(DX) ---------- ---------- 1 7 2 8