0
我想以下列查詢的Matrix/Pivot格式顯示輸出。如何在Matrix/Pivot格式中顯示Oracle查詢輸出
查詢:
SELECT
SUBSTR(mon, 4, 6) month,
rmbs_cd,
scdta,
cl_nm,
br_cd,
brd_nm,
prod,
prod_nm,
SUM(sale_net) sales
FROM (SELECT
LAST_DAY(x.deli_dt) mon,
x.rmbs_cd,
x.sc_cd || x.dist_cd || x.tha_cd || x.un_cd || x.cl_id scdta,
INITCAP(cl_nm) cl_nm,
a.br_cd,
brd_nm,
a.cat_cd || a.prd_cd prod,
prod_nm,
sale_cd,
Nvl(sum(a.sale_net) - sum(rt_qty * flat_rt), 0) sale_net
FROM bill_det a, bill_mas x, cl_info c, inv_brand d, inv_prod p
WHERE (a.bill_no = x.bill_no AND a.sc_cd = x.sc_cd)
AND x.fl_mvh IN ('1', '4')
AND x.deli_dt BETWEEN '01-JUL-15' AND '31-DEC-15'
AND a.br_cd = d.br_cd AND d.div_cd = '1'
AND a.typ_cd || a.cat_cd || a.prd_cd = p.typ_cd || p.cat_cd || p.prd_cd
AND p.typ_cd = '09'
AND x.sc_cd = c.sc_cd (+)
AND x.dist_cd = c.dist_cd (+)
AND x.tha_cd = c.tha_cd (+)
AND x.un_cd = c.un_cd (+)
AND x.cl_id = c.cl_id (+)
AND c.div_cd IN ('1', '4')
AND sale_cd IN ('IM', 'IC', 'IN')
AND cancl IS NULL
GROUP BY
LAST_DAY(x.deli_dt),
x.rmbs_cd,
x.sc_cd || x.dist_cd || x.tha_cd || x.un_cd || x.cl_id,
cl_nm,
a.br_cd,
brd_nm,
a.cat_cd || a.prd_cd,
prod_nm,
sale_cd
)
GROUP BY SUBSTR(mon, 4, 6), rmbs_cd, scdta, cl_nm, br_cd, brd_nm, prod, prod_nm
ORDER BY 1, 2, 3
結果:
預期輸出:
我想在Oracle中按順序在不同垂直列中顯示每個月。
你會發現一些建議[這裏](https://oracle-base.com/articles/11g/pivot-and-unpivot-operators-11gr1)。理解是否有最大月數或者可以是無限的:在旋轉的時候,你必須事先知道你在旋轉之後的列數(或者建立一些動態的SQL) – Aleksej
某些時候我遇到'動態pivoting',看看這裏:https://community.oracle.com/thread/883038 –
謝謝你的答覆。我解決了查詢 – Iftekhar