Oracle
如何在不影響列總和的情況下對 2 個連接表進行聯合?
我有以下表格:
cant: id CANT_VAL COD_VAL fk_id_chest c1 c2 18059 18.56 R12 1 100 11 18060 11 R10 2 200 22 18061 15 R11 3 300 33 col: FK_ID_COL_DMA CANT_VAL COD_VAL 18059 1134 R10 18059 1234 R3 18061 1111 R5
看起來像這樣:
id CANT_VAL COD_VAL fk_id_chest c1 c2 18059 18.56 R12 1 100 11 18059 1134 R10 1 0 0 18059 1234 R3 1 0 0 18060 11 R10 2 200 22 18061 15 R11 3 300 33 18061 1111 R5 3 0 0
請注意,ID 應該在由 id 和 c1 - c2 聯合的所有行上是通用的,因為對於列上的總和是不合適的。
如果我做一個:
select CANT.ID,CANT.CANT_VAL,CANT.COD_VAL,CANT.FK_ID_CHEST,CANT.C1,CANT.C2 from cant union select COL.FK_ID_COL_DMA,COL.CANT_VAL,COL.COD_VAL,CANT2.FK_ID_CHEST,CANT2.C1,CANT2.C2 from col inner join cant2 on cant2.id=COL.FK_ID_COL_DMA
我會得到一個:
id CANT_VAL COD_VAL fk_id_chest c1 c2 18059 18.56 R12 1 100 11 18059 1134 R10 1 100 11 18059 1234 R3 1 100 11 18060 11 R10 2 200 22 18061 15 R11 3 300 33 18061 1111 R5 3 300 33
如果有人想知道 c1 的總和,那將是一個糟糕的結果!謝謝!
好的,我這樣解決它:
select CANT.ID,CANT.CANT_VAL,CANT.COD_VAL,CANT.FK_ID_CHEST,CANT.C1,CANT.C2 from cant union select COL.FK_ID_COL_DMA,COL.CANT_VAL,COL.COD_VAL,CANT2.FK_ID_CHEST,0,0 from col inner join cant2 on cant2.id=COL.FK_ID_COL_DMA
謝謝!