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)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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)
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" <marchepied@discussions.microsoft.com> a écrit dans le message
de news: C1B43488-CF89-48E6-99DA-D8C519141620@microsoft.com...
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)
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)