客户需求分析:
笔者最近接到一家客户的一个需求。他们部署了一个ERP系统,现在采用的就是Oracle数据库。现在由于企业统计分析的需要,要实现如下的需求。
1、按月份来统计2009年第一季度每个供应商的采购金额。也就是说,在报表中要能够显示出2009年1月份、2月份、3月份供应商的采购金额合计,不需要明细。
2、显示的结果按年度、月份、供应商名字进行排序。
综合客户的要求,也就是说要实现如上这张报表。
PL/SQL语句解析:
select extract(YEAR FROM t.dateordered) AS 年度,extract(MONTH FROM t.dateordered) as 月份,
p.name as 供应商名字,sum(t.linenetamt) 合计
from c_orderline2 t
left join c_bpartner p on p.c_bpartner_id=t.c_bpartner_id
group by extract(YEAR FROM t.dateordered),extract(MONTH FROM t.dateordered),p.name
having extract(YEAR FROM t.dateordered)=2009 and extract(MONTH FROM t.dateordered) in (1,2,3)
order