Verknüpfen zweier komplexer SQL-Queries
-
Mahlzeit
Kann mir eventuell jemand sagen ob es eine halbwegs einfache Lösung gibt um 2 ziemlich komplexe Abfragen miteinander zu verknüpfen ?
Konkret:
Ich habe mit einer Abfrage bestimmte Produkte aus einem Datawarehouse gefiltert. Die Tabelle enthält ca. 150 Einträge mit laufender Nummer und diversen Attribute dieser Produkte.In der zweiten Abfrage habe ich zu diesen Produkten Stücklisten generiert. Es werden alle möglichen Stücklisten generiert und in diesem Query ausgegeben. (ca. 1000 Einträge). Als ein Attribut eines Stücklisteneintrages wird auch die oben erwähnte laufende Nummer des zugehörigen Produktes mitgeführt.
Ich möchte jetzt abwechselnd einen Eintrag der ersten Abfrage (=Produktbezeichnung etc.) und darunter die jeweiligen Einträge der Stückliste.
Dann soll wieder eine Produktbezeichnung kommen und wieder eine Stückliste - abwechselnd.
Das würde ich wohl mit einem UNION hinbekommen, ich weiß aber absolut nicht wie ich die Datensätze der beiden Select-Statements kombinieren kann. Mit Tabellen ginge es, aber ich will nur im äußersten Notfall Views einführen.Kann man Query-Ergebnisse irgendwie mit virtuellen Bezeichnern versehen die man dann wie Tabellen ansprechen kann ??
In mySQL gibt es ja sowas wie temporary tables soweit ich weiß...
-
Ich glaube Du kannst es in dem Schema machen:
SELECT a.ArtNr, b.Mengen FROM (SELECT ArtNr FROM tabA WHERE ... ) as a, (SELECT ArtNr, Mengen FROM tabB WHERE ... ) as b WHERE a.ArtNr = b.ArtNr
-
Grundsätzlich ja - und es die Verbindung funktioniert auch, nur dieses Abwechseln der Datenquelle bekomme ich einfach nicht hin.
Mein persönlicher Pseudocode würde in etwa so aussehen - ich glaube aber nicht dass man das rein in SQL so hinbekommt:
FOR (i=0, i<a.size, i++) //für jeden Eintrag in der Produkttabelle { insert (select * from a [i]) into final_table //werden einmal die Attributnamen... insert (select * from b where b.ArtNr = a[i].ArtNr) into final_table //und dann die Attributwerte geschrieben }
-
entweder Verstehe ich Dich falsch oder was Du vor hast ist nicht die Art und Weise, wie man vorgeht.
Zeig mal je Tabelle 2 Beispieldatensätze und wie das Ergebnis aussehen soll.