Ich hab 3 tabellen
MA
VerträgeA
VerträgeB
nun will ich alle verträge eines Mitarbeiters erfahren (sind über MaNr
verknüpft)
|---- VertägeA (manr)
|
MA(manr)
|
|---- VerträgeB (manr)
so nun will ich einen recordset der dann falls der MA jeweils einen Vertrag
in jeder tabelle hat so aussieht
VertragA
VertragB
bei mehreren Verträgen dann halt so
VertragA1
VertragA2
VertragB1
VertragB2
VertragB3
wie kann ich das mit einer einzigen Sql abfrage realisieren????
Danke schon mal im voraus
von php hab ich kein plan *G*
Programmier des grad in Visual basic und access *G*
SELECT * FROM MA
INNER JOIN VerträgeA ON MA.ID = VerträgeA.ID
INNER JOIN VerträgeB ON MA.ID = VerträgeB.ID
WHERE MA.ID = xxx
Vielleicht klappts, viel Glück.
Wenn ichs nach der methode mach sieht mein recordset nacher so aus (wenns 2 verträge A B gibt)
MA VertragA VertragB
alles in einer zeile also ein datensatz.
Ich brauch aber jeden vertrag als einzelnen datensatz also
VertragA
VertragB
thats the problem :-(
aber trotzdem danke
SELECT BLA, BLUBB FROM VertraegeA
WHERE MANR = 0815
UNION
SELECT BLA, BLUBB FROM VertraegeB
WHERE MANR = 0815;
Is' zwar Oracle SQL, sollte aber funktionieren.
hallo, erstmal.
gibt das durch den union befehl nicht wieder einen datensatz?
@topic
könnte man da nicht über eine while schleife was machen und dann nach jedem finden eines satzes ein enstprechend neuer in einer abfragetabelle (temporär) angefügt wird? wie das jetzt genau gehen muss, weiß ich auch nicht mehr, länger kein sql mehr gemacht.
BLA BLUBBER
------------------------------------
VertragA1 VertragA1
VertragA2 VertragA2
VertragB1 VertragB1
VertragB2 VertragB2
VertragB3 VertragB3
So war das doch gewollt, oder?
Wichtig beim UNION Befehl ist, das beide
SELECT Teile der SQL Statements identisch sind (im Beispiel ists "BLA, BLUBBER")
Zur Verdeutlichung: BLA, BLUBBER sind natürlich Spalten der beiden Vertragstabellen.
Mit einer Whileschleife und einer temporären Tabelle klappt das natürlich auch. Aber wozu unötige Arbeit *g* ?
[ 19-01-2002: Beitrag editiert von: neuroshock ]
...aber so, wie Du das beschrieben hast, denke ich, geht es überhaupt nicht, da Du über die beiden Veträge-Tabellen kein einheitliches Sortierkriterium hast. Oder doch?
Wie wäre es zum Beispiel damit:
Spalte in VerträgeA und VerträgeB anlegen, die da heißt "AoderB". Bei A schreibst Du halt dann "A" rein, bei B dann "B" (Boolesches Feld wäre sinnvoller! --> true = A, false = B). Wenn die Struktur ansonsten gleich ist, kannst Du zum Beispiel alles in eine temporäre Tabelle packen (wenn überhaupt nötig) und sehr schlicht alle Daten selecten und anschließend nach der Spalte sortieren. Toitoitoi.