Frage : Wie man sql-Aussage s zwei Tabellen in Auftrag mit einbeziehen schreibt?

Eine Tabelle A und Tabelle B haben:
In A: A (ID1 varchar2 (5) Primärschlüssel, Markierungsfahne varchar2 (2))
--------
Apple       F
Orange    F
Pear         F
Pork         M
Beef        M
Tomato    V
....
In B: B (ID2 varchar2 (5) Primärschlüssel)
---------
12123
23234
22323
43234
98090
89878
23454
67689
09877
98000
00765
....
….
Want, zum einer Tabelle C zu bilden, die folgendermaßen A und B enthält:
C (ID1 varchar2 (5) Primärschlüssel, Markierungsfahne varchar2 (2), ID2 varchar2 (5) Primärschlüssel)
---------
Apple F 12123
Orange F 23234
Pear F 22323
Pork M 43234
Pork M 98090
Beef M 89878
Beef M 23454
Tomato V 67689
Tomato V 09877
Tomato V 98000
Tomato V 00765
.....
That Mittel basiert auf Markierungsfahne. Wenn Markierungsfahne = F, nur eine Aufzeichnung von A und von B nehmen, um eine Aufzeichnung in C zu bilden; wenn Markierungsfahne =M, eine Aufzeichnung in A und wiederholt einmal und zwei Aufzeichnungen von B, zwei Aufzeichnungen in C zu bilden nehmen; wenn flag=V, eine Aufzeichnung in A und wiederholt 3mal und 4 Aufzeichnungen von B, 4 Aufzeichnungen in C. zu bilden nehmen. Dort sind durchaus einige Aufzeichnungen in den Tabellen A und B.
Is dort irgendeine Weise zum wite eine SQL-Aussage, sie zu beschäftigen? Wenn ja wie über pl/sql eins?
Thanks im Voraus.


Antwort : Wie man sql-Aussage s zwei Tabellen in Auftrag mit einbeziehen schreibt?


MIT x WIE
(
Folgendes VORWÄHLEN ROWNUM, id1, Markierungsfahne
VON (id1, Markierungsfahne VORWÄHLEN,
Markierungsfahne UMKLEIDEN
WENN „F“
DANN 1
WENN „M“
DANN 2
SONST 3
ENDE cntr
VON A),
TABELLE (FORM (MULTISET (AUSERWÄHLTES cntr + WAAGERECHT AUSGERICHTET - 1
VON DOPPEL
DURCH LEVEL ANSCHLIESSEN <>)
)),
y WIE
(AUSERWÄHLTES ROWNUM folgend, id2
VON b
AUFTRAG DURCH id2)
Id1, Markierungsfahne, id2 VORWÄHLEN
VON x y
WO x.seq = y.seq
AUFTRAG DURCH Markierungsfahne;



Weitere Lösungen  
 
programming4us programming4us