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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager