Questione : Come redigere la dichiarazione di sql s coinvolgere due tabelle nell'ordine?

Avere una tabella A e tabella B:
In A: A (ID1 varchar2 (5) chiave primaria,
della bandierina varchar2 (2))--------
Apple       F
Orange    F
Pear         F
Pork         M
Beef        M
Tomato    V
....
In B: B (
di ID2 varchar2 (5) chiave primaria)---------
12123
23234
22323
43234
98090
89878
23454
67689
09877
98000
00765
....
….
Want per fare una tabella C che contiene nel modo seguente A e B:
C (ID1 varchar2 (5) chiave primaria, bandierina varchar2 (2),
di ID2 varchar2 (5) chiave primaria)---------mezzi del
That del
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
..... basati sulla bandierina. Se la bandierina = la F, prendono soltanto un'annotazione da A e dalla B per prendere nota in C; se il =M della bandierina, prende un'annotazione in A e ripetuta una volta e due annotazioni dalla B prendere nota due in C; se il flag=V, prende un'annotazione in A e ripetuta 3 volte e 4 annotazioni dalla B prendere nota 4 nel C. Là sono parecchie annotazioni in sia tabelle
Is del B. che di A là del senso a wite una dichiarazione di SQL occuparsi di esso? In caso affermativo, come circa pl/sql uno?
Thanks in anticipo.


class= del

Risposta : Come redigere la dichiarazione di sql s coinvolgere due tabelle nell'ordine?


CON la x AS
(
SELEZIONARE ROWNUM seguente, id1, bandierina
DA (SELEZIONARE id1, la bandierina,
METTERE la bandierina
QUANDO “F„
ALLORA 1
QUANDO “M.„
ALLORA 2
ALTRIMENTI 3
Cntr dell'ESTREMITÀ
Dalla a) a,
TABELLA (GETTO (MULTI-INSIEME (cntr PRESCELTO + LIVELLATO - 1
DA DOPPIO
COLLEGAR DA LEVEL <>)
)),
y AS
(ROWNUM PRESCELTO seguente, id2
Dalla b
ORDINE da id2)
SELEZIONARE id1, la bandierina, id2
Dalla x, y
DOVE x.seq = y.seq
ORDINE dalla bandierina;



Altre soluzioni  
 
programming4us programming4us