|
|
|
|
Bonjour,
je vous ecris car un problème important se pose à moi.
Pour faire simple je fais un planning en C# et j'ai besoin des résultats d'une procédure stockée PL/SQL(Oracle), créée aussi par mes soins.
Cette procédure dans un premier temps renvoie 5 dates(d1,d2,d3,d4,d5)
Cela se fait à l'aide d'un select (assez complexe à cause du nombre detables à consulter mais bon on se limite au renvoi des résultats).
L'idée maintenant c'est d'inclure ce select dans un autre select pour récupérer le max entre les dates d2,d3,d5 (et le min entre d1 et d3).
donc ca s'organisera de la façon suivante
SELECT (?) FROM (mon select de dates )
Que puis-je mettre à la place du (?) pour selectionner les dates max et min désirées?
J'aimerais faire ca avec une fonction MAX, le problème est que SQL ne fait le MAX que d'une seul colonne, et non le max de la fusion entre n colonnes.
donc y a-t-il un moyen simple ou dois-je créer une fonction stockée artisanale? ^^
Voila merci de votre attention et bonne continuation.
Salut!
SELECT MIN(D1_D3.dMin), MAX(D2_D3_D5.dMax) FROM
(SELECT d1 AS dMin FROM
(SELECT TO_DATE('09-10-2000','dd-mm-yyyy') d1,
TO_DATE('10-10-2000','dd-mm-yyyy') d2,
TO_DATE('11-10-2000','dd-mm-yyyy') d3,
TO_DATE('12-10-2000','dd-mm-yyyy') d4,
TO_DATE('13-10-2000','dd-mm-yyyy') d5
FROM DUAL)
UNION
SELECT d3 AS dMin FROM
(SELECT TO_DATE('09-10-2000','dd-mm-yyyy') d1,
TO_DATE('10-10-2000','dd-mm-yyyy') d2,
TO_DATE('11-10-2000','dd-mm-yyyy') d3,
TO_DATE('12-10-2000','dd-mm-yyyy') d4,
TO_DATE('13-10-2000','dd-mm-yyyy') d5
FROM DUAL)
) D1_D3,
(SELECT d2 AS dMax FROM
(SELECT TO_DATE('09-10-2000','dd-mm-yyyy') d1,
TO_DATE('10-10-2000','dd-mm-yyyy') d2,
TO_DATE('11-10-2000','dd-mm-yyyy') d3,
TO_DATE('12-10-2000','dd-mm-yyyy') d4,
TO_DATE('13-10-2000','dd-mm-yyyy') d5
FROM DUAL)
UNION
SELECT d3 AS dMax FROM
(SELECT TO_DATE('09-10-2000','dd-mm-yyyy') d1,
TO_DATE('10-10-2000','dd-mm-yyyy') d2,
TO_DATE('11-10-2000','dd-mm-yyyy') d3,
TO_DATE('12-10-2000','dd-mm-yyyy') d4,
TO_DATE('13-10-2000','dd-mm-yyyy') d5
FROM DUAL)
UNION
SELECT d5 AS dMax FROM
(SELECT TO_DATE('09-10-2000','dd-mm-yyyy') d1,
TO_DATE('10-10-2000','dd-mm-yyyy') d2,
TO_DATE('11-10-2000','dd-mm-yyyy') d3,
TO_DATE('12-10-2000','dd-mm-yyyy') d4,
TO_DATE('13-10-2000','dd-mm-yyyy') d5
FROM DUAL)
) D2_D3_D5
;-) HackTrack |