1.需求如圖;

2. 貌似圖掛了:
表1:編碼,數量1,金額1
表2:編碼,數量2,金額2
表3:編碼,數量3,金額3
-----最后我想要的結果是: 編碼 數量1 金額1 數量2 金額2 數量3 金額3
把這些欄位按照列輸出,當三個表的編碼相等時,顯示的一行上。
例,表1中的編碼 ,表2和表3不存在 ,
則顯示 為: 編碼 數量1 金額1 0 0 0 0
uj5u.com熱心網友回復:
求大神給個思路。我現在表1 表2 表3 都是我在存盤程序中通過with as出來的表
uj5u.com熱心網友回復:
寫個存盤程序,或者函式 呼叫一下,用游標回圈編碼uj5u.com熱心網友回復:
考慮看看多維表頭的原始碼,或是直接下個控制元件。后臺生成一張表就行了uj5u.com熱心網友回復:
只是個外關聯嗎?with taba ("編碼","數量1","金額1")
as
(
select 1,11,111 from dual union all
select 2,22,222 from dual union all
select 3,33,333 from dual
),tabb ("編碼","數量2","金額2")
as
(
select 1,11,111 from dual union all
select 2,22,222 from dual
),tabc ("編碼","數量3","金額3")
as
(
select 1,11,111 from dual
)
select a."編碼",
a."數量1",
nvl(a."金額1", 0),
nvl(b."數量2", 0),
nvl(b."金額2", 0),
nvl(c."數量3", 0),
nvl(c."金額3", 0)
from taba a, tabb b, tabc c
where a."編碼" = b."編碼"(+)
and a."編碼" = c."編碼"(+)
uj5u.com熱心網友回復:
with taba ("編碼","數量1","金額1")
as
(
select 1,11,111 union all
select 2,22,222 union all
select 3,33,333
),tabb ("編碼","數量2","金額2")
as
(
select 1,11,111 union all
select 2,22,222
),tabc ("編碼","數量3","金額3")
as
(
select 1,11,111
)
SELECT *
FROM taba
LEFT JOIN tabb ON tabb.編碼 = taba.編碼
LEFT JOIN tabc ON tabc.編碼 = taba.編碼
uj5u.com熱心網友回復:
對啊,這就是普通的關聯啊~轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/106198.html
標籤:開發
