|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
Bonjour a tous,
Je viens vers vous car j'éprouve quelques difficultés à adapter ma requete Oracle sur SqlServer. La requête Oracle utilise des éléments spécifique à oracle comme : - Start with - connect by ... prior - sys_connect_by_path Et l'implémentation des CTE m'étant inconnue, je galère Voici ma requete oracle. Code :
Si quelqu'un a une idée ca serait super merci d'avance Ghosty |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
START WITH / CONNECT BY sont des atrocités spécifique à Oracle.
La norme SQL c'est WITH... avec des CTE. Lisez mon article à ce sujet, sur les requêtes récursives : http://sqlpro.developpez.com/cours/s...te-recursives/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 |
![]() ![]() |
Des atrocités qui ont résolu les problèmes hiérarchiques entre 1977 et l'arrivée de la norme en 1999 sur ce sujet.
Vous pouvez à juste titre critiquer les dix ans qu'il aura fallu à l'éditeur pour implémenter les rCTE !
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#4 | ||
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
Je connais votre article et je m'en sert déjà comme base de travail.
J'arrive déjà à avoir de la récursivité mais celle ci ne me permet pas de trouver le chemin désiré. (Pour plus d'information sur mon problème ce référé au sujet suivant ou waldar ma déjà aidé : http://www.developpez.net/forums/d10...cte-recursion/) voila ma requête pour le moment. Code :
|
||
|
|
00
|
|
|
#5 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Code :
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
Je vois que tu a supprimer le premier "union" seulement celui me permettait d'avoir tous mes chemins.
Je m'explique, ma table de type (table1,table2,sql) contient mes relations entre les différentes tables. seulement table1 et table2 ne sont pas normalisées, du coup la table1 peut être table père puis table fille dans une autre relation. sinon au niveau des résultats les deux requêtes retournes les mêmes résultats, mais ma requête ne retourne toujours pas les bons chemins. |
|
|
00
|
|
|
#7 |
![]() ![]() |
N'hesitez pas à publier un petit jeu de test.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#8 | ||
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
ah oui désolé je pensait que le lien vers l'autre forum suffisait.
Du coup je passe par une table temporaire donc ma requête se présente ainsi : Code :
comme les exemple ci dessous : le chemin entre SVFAV et SGART A savoir : Code :
SVCDV-SVFAV > SVCDV-SVLCV > SGART-SVLCV et un exemple simple entre SVCDV et SVETC : |
||
|
|
00
|
|
|
#9 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Alors essayez :
Code :
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
00
|
|
|
#10 |
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
On progresse, on progresse.
Si je met ta requête telle quelle, la requête me retourne toutes les jointures que la table a. Seulement si je rajoute une table de destination dans le dernier Select, la requête ne me retourne que chemin pour le dernier exemple. A savoir que la table de destination et en relation directe à celle de départ. Dans le cas où il y a une ou plusieurs relations entre ces deux tables, la requête ne retourne rien. La requête actuelle ne devrait-elle pas retourner tous les chemins possible au départ de la table passé en paramètre plutôt que les tables a relations directes? |
|
|
00
|
|
|
#11 |
![]() ![]() |
Au temps pour moi, je lisais le sujet sur mon smartphone et j'ai zappé le lien.
Cela dit, c'est toujours bien d'adapter le jeu de test au SGBD qui doit répondre à la problématique ! Vous ferez attention pour la suite de votre traitement, car les jointures avec (+) sont spécifiques à Oracle.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#12 |
|
Futur Membre du Club
![]() Inscription : juin 2007 Messages : 69 ![]() |
Pas de problème en ce qui concerne le lien.
Sinon merci pour les relations et c'est vrai que je n'ai pas fait attention a cela car je teste sur un outil de la base pour le moment le temps de mettre en forme la requête. Et du coup la partie avec les (+)= est générée automatiquement dans mon application en fonction de la base de données (et la j'ai repris ce que m'avais généré pour oracle). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com