JOIN aus Tabelle A oder B?!

chris4712

Erfahrenes Mitglied
Hallo,
ich habe drei Tabellen:
Positionen
ID [PKey, INT]
Datum [Date]
Typ [ENUM (Text,Art)]
PosID [INT]

Texte
ID [PKey, INT]
Text [Text]

ArtZuAb
ID [PKey, INT]
ArtNr [INT]
SerienNr [INT]
Preis [DEC]
Menge [INT]

Nun habe ich folgendes Problem. Anhand von POSITIONEN.Typ möchte ich bestimmen was es ist, und dann anhand der POSITIONEN.PosID die entsprechende Zeile aus TEXTE oder ARTZUAB "einfügen" (hab es mit JOIN versucht).

Rauskommen soll sowas hier:
Code:
Datum     Artikelbezeichnung  Seriennummer  EinzelP  Menge  GesammtP
09.04.08  Das ist ein Text
09.04.08  Artikel Wurst       WU4712         2.00     3      6.00
09.04.08  Artikel Brot        BR371          1.00     1      1.00
09.04.08  Noch mal Text

Geht so was? Bis jetzt bin ich gescheitert. Join mit Typ Abfrage in WHERE Bedingung is kein Problem, aber dann habe ich ja entweder Art oder Text und nicht beides in der richtigen Reihenfolge.
Danke und Gruß!
 
Du musst das nochmal genauer erklären.

Willst du für jeden Datensatz entweder einen aus Texte oder ArtZuAb? Weil bei der letzten sehe ich gerade keinen Text :)

Du könntest als Artikelbezeichnung ein case-Feld nehmen: case whet Positionen.Typ = Text then Texte.Text else ArtZuAb.WelcheSpalteAuchImmer. Den Rest dann mit '', da die Spaltenanzahl immer gleich sein muss.

Gruß
 
Hallo!
Sorry, war die letzten Tage unterwegs.
Hab aber mittlerweile erfahren dass das was ich vorhatte nicht so einfach möglich ist.
Ich habe es nun mit PHP realisiert.
Eine while Schleife läuft durch die Tabelle POSITIONEN. Pro Aufruf wird geschaut ob es ein Text oder eine Position ist, und die entsprechende andere MySQL Abfrage wird durchgeführt.

Gruß

Christian
 
Zurück