OVH Cloud OVH Cloud

Select Imbriqués dans les définitions de zone

1 réponse
Avatar
marchepied
Bonjour
J'ai le code SQL (simplifié) sur l'AS400 ci-dessous:
Le problème est que si il n'y a pas de "matching" dans le SELECT imbriqué,
il y a aucune selection dans les 2 selects.
Je voudrai que même si il n'y a pas de "matching" dans le SELECT imbriqué,
qu'il me mettre rien dans la zone concernées, mais qu'il me récupére quand
même les données du SELECT principale.
Merci pour votre aide.

SELECT ( char(obj.zone1) CONCAT ';' CONCAT

(SELECT char(sum(T1.montant) )
FROM table1 T1, table2 T2
WHERE char(T1.zoneT1) = substr(T2.zoneT2, 1, 6))

) As Enreg
FROM PFNOBJ OBJ, PFNPAY PAY
WHERE (obj.nn001 = pay.nn001)

1 réponse

Avatar
Med Bouchenafa
Je suppose que le problème vient du fait que SELECT intérieur peut retourner
un NULL
La concatenation d'un NULL avec autre chose donne un NULL
Il faut rajouter un CASE

--
Bien cordialement
Med Bouchenafa

"marchepied" a écrit dans le message
de news:
Bonjour
J'ai le code SQL (simplifié) sur l'AS400 ci-dessous:
Le problème est que si il n'y a pas de "matching" dans le SELECT
imbriqué,
il y a aucune selection dans les 2 selects.
Je voudrai que même si il n'y a pas de "matching" dans le SELECT imbriqué,
qu'il me mettre rien dans la zone concernées, mais qu'il me récupére quand
même les données du SELECT principale.
Merci pour votre aide.

SELECT ( char(obj.zone1) CONCAT ';' CONCAT

(SELECT char(sum(T1.montant) )
FROM table1 T1, table2 T2
WHERE char(T1.zoneT1) = substr(T2.zoneT2, 1, 6))

) As Enreg
FROM PFNOBJ OBJ, PFNPAY PAY
WHERE (obj.nn001 = pay.nn001)