Je les tableaux suivants: 1.
UNIT_OF_MEASURE
: colonnes: UNIT_OF_MEASURE, CODE, DESCRIPTION, VERSION
2. UNIT_OF_MEASURE_TRANS
: colonnes: UNIT_OF_MEASURE_ID_LANGAUGE_ID, DESCRIPTION
3. LANGUAGE
: colonnes: LANGUAGE_ID, LANGUAGE_NAME
Transposer les lignes abouti à Oracle 9i
Ce que je J'ai essayé de faire est de montrer toutes les descriptions d'unités de mesures en 5 langues. Je l'ai fait avec succès mais comme une liste, c'est-à-dire, toute la description dans une colonne répétée dans différentes langues.
SELECT
uomt.description,
l.language_name
FROM unit_of_measure_trans uomt
INNER JOIN language l ON (uomt.language_id = l.language_id)
WHERE
l.language_id IN (25, 22, 82, 34, 27, 52, 10, 90)
order by language_name;
`
Maintenant, je dois améliorer cela pour montrer chaque groupe de descriptions dans la colonne séparée en fonction de la langue. Donc, cinq colonnes contiendront le même groupe de descriptions d'unités de mesure dans différentes langues. J'ai essayé slef-join
mais j'ai obtenu des résultats de produits cartésiens, pas sûr si union all
résoudra le problème. J'ai passé en revue plusieurs articles sur la transposition ici, je crains de ne pouvoir en appliquer aucun sur mon cas.
Vous avez besoin de PIVOT. Voir ceci: http: //stackoverflow.com/questions/1677645/using-pivot-in-sql-server-2008? Rq = 1 –
@vijay Je ne pense pas que PIVOT soit disponible en oracle i9. – Hawk
désolé je pensais MS-SQL SERVER. –