【发布时间】:2022-01-08 19:51:35
【问题描述】:
我想在 PLSQL 中运行查询以获取数据表中过去六个月内的销售数量总和,并将其按月分配给列。
到目前为止,我执行此代码来选择我想要的数据
SELECT
*
FROM
(
select
CATALOG_NO as PartNo,
to_char(INVOICE_DATE, 'MM') as tday,
sum(INVOICED_QTY) as qty
from
db.INV_ITEM_JOIN
WHERE
upper(CATALOG_GROUP) = upper('SPAM')
AND INVOICE_DATE between add_months(
trunc(sysdate, 'mm'),
-6
)
and last_day(
add_months(
trunc(sysdate, 'mm'),
-1
)
)
group by
to_char(INVOICE_DATE, 'MM'),
CATALOG_NO
order by
CATALOG_NO
)
然后我得到结果,为了创建 PIVOT,我在 select Query 之后添加了这段代码
PIVOT (
SUM(qty) FOR TDAY IN (
01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11,
12
)
)
所以一旦我添加它返回表为PartNo,01,02,03,04,05,06,07,08,@ 987654332@,10,11,12
同样明智。
但数据只到101112月份,其他的不填。我可以寻求帮助来解决这个问题吗?
【问题讨论】:
-
我们应该知道样本数据集以便能够帮助您