| | | SolidCAM bei der 23. Hausmesse des Technikszentrums by Werkzeug-Eylert |
Autor
|
Thema: Abfrage SQL rekursiv (1000 mal gelesen)
|
magge84 Mitglied Dipl.-Ing. (Entwicklung)
Beiträge: 66 Registriert: 04.09.2008 Solid Works 2018 + PDM Windows 10 64-bit HP Z-Book Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz NVIDIA Quadro M3000M
|
erstellt am: 05. Mrz. 2018 13:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, ich brauche eine rekursive SQL-Abfrage. Bin kein Profi, daher brauche ich euere Hilfe. Hier der Code:
Code:
With AllDoc (Path, Filename, DID, XID, Level) As ( Select Distinct P.Path, D.Filename, D.DocumentID as DID, X.DocumentID as XID, 1 as Level From XRefs X, Documents D, Projects P, DocumentsInProjects DIP Where X.DocumentID = (Select DocumentID From Documents Where Filename = '00000076.sldasm') and X.XRefDocument = D.DocumentID and D.DocumentID = DIP.DocumentID and DIP.ProjectID = P.ProjectID and D.Deleted = 0 UNION ALL Select P.Path, D.Filename, D.DocumentID as DID, X1.DocumentID, AD.Level+1 From XRefs X1, Documents D, Projects P, DocumentsInProjects DIP INNER JOIN AllDoc as AD ON X1.DocumentID = AD.DID ) Select * From AllDoc Where Level <=5
Ich will damit alle Baugruppen / Teile abfragen, die in meiner Ausgangsbaugruppe enthalten sind. Und das bis hin zur letzten Ebene. Nachtrag: Die Abfrage für die erste Ebene funktioniert problemlos. Beim Inner-Join bekomme ich einen Fehler. "X1.DocumentID" mehrteiliger Bezeichner konnte nicht gebunden werden. Weiß jemand Rat. Ich komme hier nicht weiter! ------------------ Gruß, Markus
[Diese Nachricht wurde von magge84 am 05. Mrz. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Prozessingenieur (w/m/d) Medizintechnik | CeramTec ist ein führender Entwickler und global aktiver Hersteller und Lieferant von Speziallösungen aus Hochleistungskeramik mit mehr als 3.400 Mitarbeitern. Unsere Lösungen sind weltweit im Fahrzeug- und Maschinenbau, in der Medizintechnik, der Elektronik, der Luft- und Raumfahrttechnik und der Energie- und Umwelttechnik im Einsatz. Willkommen bei den Keramik-Experten. Für ... | Anzeige ansehen | Prozessmanagement |
|
magge84 Mitglied Dipl.-Ing. (Entwicklung)
Beiträge: 66 Registriert: 04.09.2008 Solid Works 2018 + PDM Windows 10 64-bit HP Z-Book Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz NVIDIA Quadro M3000M
|
erstellt am: 14. Mrz. 2018 08:36 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, mit etwas probieren und recherchieren habe ich die rekursive SQL-Abfrage selber hinbekommen. Hier der Code, für alle die ein ähnliches Problem haben. Hoffe es hilft weiter. Code:
With AllDoc (Path, Filename, DID, Level) As ( Select Distinct P.Path, D.Filename, D.DocumentID as DID, 1 as Level From Documents D Inner Join XRefs As X ON D.DocumentID = X.XRefDocument Inner Join DocumentsInProjects As DIP ON D.DocumentID = DIP.DocumentID Inner Join Projects As P ON DIP.ProjectID = P.ProjectID Inner Join VariableValue AS VV ON D.DocumentID = VV.DocumentID Where X.DocumentID = (Select DocumentID From Documents Where Filename = '00000076.sldasm') and D.Deleted = 0 and X.RevNr = (Select Max(VV1.RevisionNo) --Nur Kinder der aktuellsten Version listen From VariableValue VV1, Documents D Where VV1.DocumentID = D.DocumentID and D.DocumentID = (Select DocumentID From Documents Where Filename = '00000076.sldasm')) UNION ALL Select P1.Path, D1.Filename, D1.DocumentID as DID, AD.Level + 1 From Documents D1 Inner Join XRefs As X1 ON D1.DocumentID = X1.XRefDocument Inner Join DocumentsInProjects As DIP1 ON D1.DocumentID = DIP1.DocumentID Inner Join Projects As P1 ON DIP1.ProjectID = P1.ProjectID Inner Join AllDoc As AD ON X1.DocumentID = AD.DID ) Select * From AllDoc AD Where AD.Filename like '%.sld%' OPTION (MAXRECURSION 100)
Bei Fragen dazu, einfach melden. Vielleicht kann ich helfen. ------------------ Gruß, Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|