Extraction ORACLE dans Excel requete SQL
geronimo
-
geronimo -
geronimo -
Bonjour,
Je dois faire des extractions Oracle 9i pour faire des jolis graphiques dans Excel et des stats sur la nomenclature. Nous utilisons le PDM Smarteam
La table TN_DOCUMENTS contient les informations en clair pour les etres humains sur les objets :
OBJECT_ID, TDMX_ID, CLASS, REVISION,....
La table DOCUME0_TREE contient les informations Parents-enfants sous la forme:
OBJECT_ID1, OBJECT_ID2
J ai decompose le problemes en 3 subQuery qui fonctionnent independament
Je souhaite maintenant les imbriquer... plus rien ne marche... de ce que je comprends Excel ne comprends pas mon JOIN
SELECT tdmx_id
FROM (SELECT object_id2
FROM "DOCUME0_TREE"
START WITH "OBJECT_ID2" IN (
SELECT Max(object_id)
FROM "TN_DOCUMENTS"
WHERE class_id = 451 AND (state = 1 OR state = 3)
GROUP BY tdmx_id
) CONNECT BY PRIOR object_id2 = object_id1) "MYTREE" JOIN "TN_DOCUMENTS"
ON MYTREE.OBJECT_ID2 = "TN_DOCUMENTS".OBJECT_ID
Je dois faire des extractions Oracle 9i pour faire des jolis graphiques dans Excel et des stats sur la nomenclature. Nous utilisons le PDM Smarteam
La table TN_DOCUMENTS contient les informations en clair pour les etres humains sur les objets :
OBJECT_ID, TDMX_ID, CLASS, REVISION,....
La table DOCUME0_TREE contient les informations Parents-enfants sous la forme:
OBJECT_ID1, OBJECT_ID2
J ai decompose le problemes en 3 subQuery qui fonctionnent independament
Je souhaite maintenant les imbriquer... plus rien ne marche... de ce que je comprends Excel ne comprends pas mon JOIN
SELECT tdmx_id
FROM (SELECT object_id2
FROM "DOCUME0_TREE"
START WITH "OBJECT_ID2" IN (
SELECT Max(object_id)
FROM "TN_DOCUMENTS"
WHERE class_id = 451 AND (state = 1 OR state = 3)
GROUP BY tdmx_id
) CONNECT BY PRIOR object_id2 = object_id1) "MYTREE" JOIN "TN_DOCUMENTS"
ON MYTREE.OBJECT_ID2 = "TN_DOCUMENTS".OBJECT_ID
Configuration: Windows 2003 / Firefox 3.0.5
1 réponse
-
Salut,
Je suis pas très versé dans la syntaxe officielle standardisée, aussi je peux rien dire sur ce "JOIN"
Par contre, je t'enjoins de testerSELECT tdmx_id FROM TN_DOCUMENTS, ( SELECT object_id2 FROM DOCUME0_TREE START WITH OBJECT_ID2 IN ( SELECT Max(object_id) FROM TN_DOCUMENTS WHERE class_id = 451 AND (state = 1 OR state = 3) GROUP BY tdmx_id ) CONNECT BY PRIOR object_id2 = object_id1 ) MYTREE WHERE MYTREE.OBJECT_ID2 = TN_DOCUMENTS.OBJECT_IDqui est tout simplement ta requête rédigée d'une manière plus "traditionnelle". par contre, je pourrais pas te filer le moindre coup de main pour tout ce qui est hiérarchique-
Bonjour,
Merci pour ta reponse!
J'ai lu justemment dans le train la syntaxe que tu proposes comme etant l'ancienne ISO, je comptais donc l'essayer aujourd'hui. Tu me confirmes dans mes espoirs!
Donnant une formation, je n'ai pas encore eu l'oportunité de retourner sur la machine de test, pour essayer cette syntaxe
Mais si cela réussit, je (con)sacré expert des extractions ORACLE dans Excel
Cordialement
Gilles -
-