我有一个非常简单的脚本,显示3个组件目录号及其新发布日期......
SELECT nrb.p_catnr,
(
select min(selection_relse_date)
from BDS_SELECTION_ORG@sid_to_cdsuk st
where substr(selection_no, 2, 99) = pd.catnr
) NR_DATE
FROM part_description pd
INNER JOIN inventory_purchase ip
ON ip.part_no = pd.part_no
INNER JOIN scm_prodtyp pt
ON pt.prodtyp = pd.prodtyp
INNER JOIN oes_fod_match acp
ON acp.part_no = pd.part_no
INNER JOIN NCF_COMPPART ncf
ON ncf.item_part_no = pd.part_no
INNER JOIN oes_nrbom nrb
ON ncf.catnr = nrb.c_catnr
AND ncf.prodtyp = nrb.c_prodtyp
AND ncf.packtyp = nrb.c_packtyp
AND ncf.vernr = nrb.c_vernr
WHERE pd.cunr in ('649830', 'W30000')
AND pd.catnr = '2EDVD0017'
AND pd.fod_idc = 'Y'
AND pt.prodgrp = 'AW'
结果如下......
我想添加的是每个月和每月的列表。从NR_DATE到当前日期的年份(MON-YYYY)但是,我想在水平上添加它,即
然后我想添加以下脚本......
(select nvl(sum(dp.del_qty),0)
from bds_dhead@sid_to_cdsuk dh,
bds_dline@sid_to_cdsuk dp
where dp.dhead_no = dh.dhead_no
and dh.d_status = '9'
and dp.article_no = '9'||nrb.p_catnr
and to_char(dh.actshpdate,'MON-YYYY') = --'list of months'
并在正确的列/行中绘制总和。
这可能吗?
由于
答案 0 :(得分:0)
您不会将SQL用于此类任务。 SQL在数据级别上运行,但您希望在表示级别上执行操作。
因此,您设计SQL,将结果集作为行返回,然后使用您喜欢的报告工具,从数据中创建数据透视表。您可以使用Eclipse BIRT,Crystal Reports甚至excel来执行此类操作。
修改强>
当然,一些RDBMS也支持其SQL语言中的数据透视表。但是有充分的理由将数据和表示层分开。