Vous n'êtes pas identifié(e).
bonjour,
j'ai une erreur que je ne comprends pas car cela fonctionne en sql avec d'autres base.
l'ordre :
select code_contact,(nom_contact || ' ' || prenom_contact || ' - ' || profession) as nom_affiche from contacts where statut='1' and type_tiers='C' and code_tiers='xxxxxx' and type_contact='CONTACT'
union all
select code_contact,(nom_contact || ' ' || prenom_contact || ' - ' || profession,' INACTIF') as nom_affiche from contacts where statut='2' and type_tiers='C' and code_tiers='xxxxxx' and type_contact='CONTACT'
order by nom_affiche
renvoie l'erreur :
les UNION types text et record ne peuvent pas correspondre.
merci d'avance pour vos lumières
Hors ligne
re,
désolé ... j'ai trouvé. quand l'on doit gérer plusieurs types de base et que le concat n'est pas identique.
sur la deuxième ligne, il restait une virgule :
(nom_contact || ' ' || prenom_contact || ' - ' || profession,' INACTIF')
bonne soirée
Hors ligne
La question est maintenant : pourquoi mettre des parenthèses ? c'est pour ça que PostgreSQL a pris la deuxième colonne pour un record.
Guillaume.
Hors ligne
bonjour,
le code initial était concat(val1,val2,...) donc
* j'enlève le concat
* je garde les parenthèses
* et je remplace les virgules par deux pipes
Hors ligne