表结构 :产品号 生产日期 数量 单价现在要根据产日期判断 3,9,12个月内的产品select 出下面的结构
---------------------------------------
         |     3月     |     6月     |     9月    | 
产品号 生产日期 数量 金额    |数量|金额|   |数量|金额|   |数量|金额|金额 =数量*单价我用(CASE
             WHEN 生产日期 >= add_months(SYSDATE, -3) THEN
              1
             WHEN 生产日期 >= add_months(SYSDATE, -6) THEN
              2
             WHEN 生产日期 >= add_months(SYSDATE, -9) THEN
              3
             ELSE
              4
           END) Datescope
 
 可以判断出范围,问题是我该如何分组,对3,6,9 月数量金额进行分组啊!如果嵌套聚合总是报此处不能使用非单行聚合

解决方案 »

  1.   

    这个也100?
    你给的结构是不行的,合计与分计矛盾的。
    select sum(CASE WHEN   生产日期   > =   add_months(SYSDATE,   -3)   THEN 1 else 0 end) as 3yue,
    sum(CASE WHEN   生产日期   > =   add_months(SYSDATE,   -6)   THEN 1 else 0 end) as 6yue,
    sum(CASE WHEN   生产日期   > =   add_months(SYSDATE,   -9)   THEN 1 else 0 end) as 9yue from table
      

  2.   

    谢谢楼上的,但我不知道结构为什么不行,按3,6,9分组,然后分别统计出3,6,9的数量和总价,上面case when 只是我的思路,不知道有没有其它的解决办法。。问题解决马上结贴!
      

  3.   

    希望你贴出你解决问题的sql,方便别人。我给的sql应该就是你需要的,总价=数量*单价。