Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 需要将订单总数添加到汇总查询中_Sql_Db2_Db2 400 - Fatal编程技术网

Sql 需要将订单总数添加到汇总查询中

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。我尝试计数(t01.ihordt),但它不是有效的。我需要这个订单总数来获得每个订单的平均金额

预期数据:

当前:

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版本和平台?