SQL Statement
-
Mittwoch, 13. Februar 2013 15:00
Hallo
Ich versuche ein SQL Statement zu bauen das folgendes abbildet:
Ich habe eine Tabelle mit Bestellköpfen (POHead), für den POHead gibt es sowohl x Bestellkopftexte(POHeadTxt) wie auch Bestellzeilen (POLine).
Diese Zeilen haben wiederum x BestellzeilenTexte (POLineTxt)
Verknüpft sind diese untereinander wie folgt:
POHead hat ein Feld DBK-Best mit einer eindeutigen Kennung...diese ist auf POHeadTxt und auf auf den POLines.
Die POLineTxt hat ein Feld DBK-Bpos als Markierung...
Wie baue ich ein vernünftiges SQL Skript auf das mit evtl auch nur eine gewisse Anzahl POHead zurückliefert (sagen wir 20 für Testzwecke) mit sämtlichen dazugehörenden Texten, Lines und LineTexten
Alle Antworten
-
Mittwoch, 13. Februar 2013 18:20
Hi,
poste bitte mal eine Tabellendefinition und einige Beispieldaten. Entweder im Format:
[Tabelle1]
ID int PK
Name varchar
Irgendwas int
...oder gleich als SQL Skript für alle relevanten Tabellen.
In deinem Fall wäre das wohl in etwa das hier:
SELECT tab1.Feld1, tab1.Feld2, tab2.FeldX, tab2.FeldY, tab3.FeldA, tab3.FeldB FROM Tabelle1 tab1 INNER JOIN Tabelle2 tab2 ON t2.Spalte = t1.Spalte INNER JOIN Tabelle3 tab3 ON t3.Spalte = t2.SpalteWie genau das Statement aussehen muss, kann man ohne zu wissen, wie deine Tabellen wirklich aussehen, nicht sagen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Montag, 18. Februar 2013 13:27
Ja das es schwer ist ohne genau zu wissen wie die Tabellen aufgebaut sind verstehe ich.
Mein grösstes Problem ist die Hierarchie ab zu bilden...
Tabelle 1 (z.b SalesTable)
Tabelle 2 (z.B. SalesHeaderTxt)
Tabelle 3 (z.B. SalesLine)
Tabelle 4 (z.B. SalesLineTxt)
-
Montag, 18. Februar 2013 13:40
Ja das es schwer ist ohne genau zu wissen wie die Tabellen aufgebaut sind verstehe ich.
Und warum gibst Du uns die Info dann nicht mal? :)
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Montag, 18. Februar 2013 13:59
ich versuch mal das wichtigste zusammen zu stellen....sind riesige Tabellen mit x hundert Feldern aus einem uralt Programm für das ich nun Datenmigration machen muss
-
Montag, 18. Februar 2013 14:31
ich versuch mal das wichtigste zusammen zu stellen....sind riesige Tabellen mit x hundert Feldern aus einem uralt Programm für das ich nun Datenmigration machen muss
Nimm halt die drei genannten Tabellen und bilde die Struktur der benötigten Spalten ab. D.h. es sollten mind. alle Primärschlüssel und Fremdschlüssel (inkl. Kennzeichnung der jeweiligen Spalten und der Beziehung untereinander) zu sehen sein und ggfs. noch eine Spalte mit einem Namen, damit man die Ergebnisse auch ordentlich vergleichen kann.
Was Du mit "Hierarchie abbilden"meinst, wäre auch noch wichtig. Eine Ausgabe, bspw. in Form von Datensätzen, Unterdatensätzen, die dann auch noch grafisch anzeigen, wie Sie miteinander in Beziehung stehen, ... geht so erstmal nicht. Das ist Sache der Anwendung, die die Ausgabe erzeugt. Daher wäre es sinnvoll, wenn Du neben der Tabellendefinition und den Beispieldatensätzen auch die gewünschte Ausgabe (mit den Beispieldaten) aufzeigst.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Mittwoch, 20. Februar 2013 11:40
-
Donnerstag, 21. Februar 2013 07:43
Schade, dass sich im Bild nicht die Tabellennamen aus dem OP wiederfinden.
Das hier sollte aber helfen:
SELECT * FROM (Select top 20 * from POHead) tab1 LEFT JOIN POHeadTxt tab2 ON t1.[DBK-Best] = t2.[DBK-Best] LEFT JOIN POLine tab3 ON t1.[DBK-Best] = t3.[DBK-Best] LEFT JOIN POLineTxt tab4 ON t3.[DBK-Bpos] = t4.[DBK-Bpos] ;Einen schönen Tag noch,Christoph--Microsoft SQL Server MVPhttp://www.insidesql.org/blogs/cmu/- Als Antwort vorgeschlagen Stefan FalzMVP Mittwoch, 27. März 2013 22:39

