Mettre tous les résultats sur une même ligne
Résolu/Fermé
JsuisNul
Messages postés
122
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
14 février 2024
-
Modifié le 22 janv. 2020 à 11:55
JsuisNul Messages postés 122 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 14 février 2024 - 22 janv. 2020 à 18:01
JsuisNul Messages postés 122 Date d'inscription mercredi 13 février 2013 Statut Membre Dernière intervention 14 février 2024 - 22 janv. 2020 à 18:01
A voir également:
- Ora-00904 identificateur non valide
- Comment aller à la ligne sur excel - Guide
- Partager photos en ligne - Guide
- Site de vente en ligne particulier - Guide
- Comment se mettre hors ligne sur instagram - Guide
- Gps hors ligne - Guide
4 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
22 janv. 2020 à 12:10
22 janv. 2020 à 12:10
Bonjour,
ce que tu veux faire ressemble à un GROUP_CONCAT sous mysql.
Regarde la réponse donnée ici
https://stackoverflow.com/questions/16771086/is-there-any-function-in-oracle-similar-to-group-concat-in-mysql
ce que tu veux faire ressemble à un GROUP_CONCAT sous mysql.
Regarde la réponse donnée ici
https://stackoverflow.com/questions/16771086/is-there-any-function-in-oracle-similar-to-group-concat-in-mysql
JsuisNul
Messages postés
122
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
14 février 2024
1
22 janv. 2020 à 14:27
22 janv. 2020 à 14:27
J'avais vu cette fonction mais je n'ai pas réussi à la faire fonctionner.
Je vais retenter.
Merci.
Je vais retenter.
Merci.
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
22 janv. 2020 à 15:02
22 janv. 2020 à 15:02
Quelle version d'Oracle utilises tu ?
JsuisNul
Messages postés
122
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
14 février 2024
1
22 janv. 2020 à 17:06
22 janv. 2020 à 17:06
je viens justement de re-tester et la commande n'est as reconnu...En plus avec cette fonction je n'ai pas le choix sur l'ordre d'affichage des infos...
Voila les infos que j'ai pu trouvé sur a version oracle :
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
Voila les infos que j'ai pu trouvé sur a version oracle :
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
"CORE 11.2.0.4.0 Production"
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
22 janv. 2020 à 17:31
22 janv. 2020 à 17:31
De quelle fonction parles tu ?
Si c'est bien :
https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions089.htm#SQLRF30030
Il est bien indiqué qu'elle est compatible Oracle 11G ..; et si tu lis la doc.. qu'elle met l'ordre utilisé dans le ORDER BY de ta requête....
Si c'est bien :
https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions089.htm#SQLRF30030
Il est bien indiqué qu'elle est compatible Oracle 11G ..; et si tu lis la doc.. qu'elle met l'ordre utilisé dans le ORDER BY de ta requête....
JsuisNul
Messages postés
122
Date d'inscription
mercredi 13 février 2013
Statut
Membre
Dernière intervention
14 février 2024
1
22 janv. 2020 à 18:01
22 janv. 2020 à 18:01
je parlais de la Group_Concat :
ORA-00904: "GROUP_CONCAT" : identificateur non valide
00904. 00000 - "%s: invalid identifier"
J'ai trouvé une solution en utilisant un group by et en mettant la fonction min devant mes case et ça fonctionne :
Select a.cdcode , b.liblon, c.cdsire, c.cdsire||c.cdnics ,f.zonadb as voie, substr(f.zonadd,6,39)as Ville, f.cdpost, substr(f.zonadc,1,5) as INSEE,f.cdpays,
case when d.nateta = '1' then 'Etablissement Siége' else '' end AS NatEtab,
case when d.nateta = '1' then c.cdnics else '' end AS Nic,
case when s.opt006 = '1' then 'AmAlsaceMoselle' else '' end AS AmAlsaceMoselle,
min(case when x.typtel = 'EML' then x.numtel else '' end) AS contact,
min(case when x.typtel in ('PPP','HPN') then x.numtel else '' end) AS Telcontact
from zd01 b, zdag c, zd7r d, zd39 e,zd0f f, zd00 a
left join zdf1 s on a.nudoss = s.nudoss
left join zd0h x on a.nudoss = x.nudoss
where a.cdstco='DRE' and e.idcy00 in ('598','584','581','578','574','567','549','547','546','531','530','529','526','523','522','519','515','502','500')
and a.nudoss=b.nudoss and a.nudoss=c.nudoss and a.nudoss=f.nudoss
--and a.nudoss=s.nudoss
and a.nudoss=d.nudoss
and a.nudoss = e.nudoss
group by a.cdcode , b.liblon, c.cdsire, c.cdsire||c.cdnics ,f.zonadb, substr(f.zonadd,6,39), f.cdpost, substr(f.zonadc,1,5),f.cdpays,
case when d.nateta = '1' then 'Etablissement Siége' else '' end,
case when d.nateta = '1' then c.cdnics else '' end,
case when s.opt006 = '1' then 'AmAlsaceMoselle' else '' end
order by a.cdcode
Merci à toi !!
ORA-00904: "GROUP_CONCAT" : identificateur non valide
00904. 00000 - "%s: invalid identifier"
J'ai trouvé une solution en utilisant un group by et en mettant la fonction min devant mes case et ça fonctionne :
Select a.cdcode , b.liblon, c.cdsire, c.cdsire||c.cdnics ,f.zonadb as voie, substr(f.zonadd,6,39)as Ville, f.cdpost, substr(f.zonadc,1,5) as INSEE,f.cdpays,
case when d.nateta = '1' then 'Etablissement Siége' else '' end AS NatEtab,
case when d.nateta = '1' then c.cdnics else '' end AS Nic,
case when s.opt006 = '1' then 'AmAlsaceMoselle' else '' end AS AmAlsaceMoselle,
min(case when x.typtel = 'EML' then x.numtel else '' end) AS contact,
min(case when x.typtel in ('PPP','HPN') then x.numtel else '' end) AS Telcontact
from zd01 b, zdag c, zd7r d, zd39 e,zd0f f, zd00 a
left join zdf1 s on a.nudoss = s.nudoss
left join zd0h x on a.nudoss = x.nudoss
where a.cdstco='DRE' and e.idcy00 in ('598','584','581','578','574','567','549','547','546','531','530','529','526','523','522','519','515','502','500')
and a.nudoss=b.nudoss and a.nudoss=c.nudoss and a.nudoss=f.nudoss
--and a.nudoss=s.nudoss
and a.nudoss=d.nudoss
and a.nudoss = e.nudoss
group by a.cdcode , b.liblon, c.cdsire, c.cdsire||c.cdnics ,f.zonadb, substr(f.zonadd,6,39), f.cdpost, substr(f.zonadc,1,5),f.cdpays,
case when d.nateta = '1' then 'Etablissement Siége' else '' end,
case when d.nateta = '1' then c.cdnics else '' end,
case when s.opt006 = '1' then 'AmAlsaceMoselle' else '' end
order by a.cdcode
Merci à toi !!