Sql 需要将订单总数添加到汇总查询中
在下面,我需要在这里添加每个订单类型的订单总数,即IHORDT。我尝试计数(t01.ihordt),但它不是有效的。我需要这个订单总数来获得每个订单的平均金额 预期数据: 当前:Sql 需要将订单总数添加到汇总查询中,sql,db2,db2-400,Sql,Db2,Db2 400,在下面,我需要在这里添加每个订单类型的订单总数,即IHORDT。我尝试计数(t01.ihordt),但它不是有效的。我需要这个订单总数来获得每个订单的平均金额 预期数据: 当前: IHORDT current year previous year RTR 100,000 90,000 INT 2,000,000 1,500,000 新更改:添加到上述一列: Total orders RTR 100 INT
IHORDT current year previous year
RTR 100,000 90,000
INT 2,000,000 1,500,000
新更改:添加到上述一列:
Total orders
RTR 100
INT 1000
SELECT T01.IHORDT
-- summarize by current year and previous year
,SUM( CASE WHEN YEAR(IHDOCD) = YEAR(CURRENT TIMESTAMP) - 1
THEN (T02.IDSHP#*T02.IDNTU$) ELSE 0 END) AS LastYear
,SUM( CASE WHEN YEAR(IHDOCD) = YEAR(CURRENT TIMESTAMP)
THEN (T02.IDSHP#*T02.IDNTU$) ELSE 0 END) AS CurYear
FROM ASTDTA.OEINHDIH
T01 INNER JOIN
ASTDTA.OEINDLID T02
ON T01.IHORD# = T02.IDORD#
WHERE T01.IHORDT in ('RTR', 'INT')
--------------------------------------------------------
AND ( YEAR(IHDOCD) = YEAR(CURRENT TIMESTAMP) - 1
OR YEAR(IHDOCD) = YEAR(CURRENT TIMESTAMP))
GROUP BY T01.IHORDT
要接收组中的记录计数,您需要使用
count(*)
下面是一个通用示例:
select order_type,
sum(order_amount) as total_sales,
count(*) as number_of_orders
from order_header
group by order_type;
示例数据和期望的结果将非常有用。请检查SUM()over(按IhordT分区)。。。在我看来,这就是你所需要的,如果你自己不能弄明白,就按照@GordonLinoff说的去做。。。。示例数据和结果DB2版本和平台?