SQL我要获取下方类别的月汇总数据分别1-11月请教下各位大佬这里的语句要怎么写

image.png

  SELECT c.item_midclsno as item_clsno_second,

         (select item_clsname from t_bd_item_cls where item_clsno = c.item_midclsno ) as item_clsname,   

         sum(a.sale_qty),   

         sum(a.sale_amt),   

         sum(a.ret_qty),   

         sum(a.ret_amt),   

         sum(a.giv_qty),   

         sum(a.giv_amt)

    FROM t_rm_daysum a,   

         t_bd_item_cls b,   

         (select substring(item_clsno, 1, 2*convert(int,(select sys_var_value from t_sys_system where sys_var_id = 'gl_itm_cls_nolen'))) as item_midclsno,* from t_bd_item_info) c  

   WHERE  b.item_clsno = c.item_midclsno and  

         ( a.item_no = c.item_no ) and  

         ( a.oper_date BETWEEN '2022-01-01' AND '2022-11-30' ) AND  

         ( c.item_clsno like '%' ) and

         ( a.branch_no like '%' ) and

         ( a.supcust_no like '%' ) and

         ( b.item_flag = '0' )  

GROUP BY item_midclsno

SQL peakbrutal 发布于 2022-12-1 11:38
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
用户k6280494Lv6资深互助
发布于2022-12-1 11:45(编辑于 2022-12-2 11:02)

SELECT c.item_midclsno as item_clsno_second,

         Month(a.oper_dateoper_date,

         (select item_clsname from t_bd_item_cls where item_clsno = c.item_midclsno ) as item_clsname,   

         sum(a.sale_qty),   

         sum(a.sale_amt),   

         sum(a.ret_qty),   

         sum(a.ret_amt),   

         sum(a.giv_qty),   

         sum(a.giv_amt)

    FROM t_rm_daysum a,   

         t_bd_item_cls b,   

         (select substring(item_clsno, 1, 2*convert(int,(select sys_var_value from t_sys_system where sys_var_id = 'gl_itm_cls_nolen'))) as item_midclsno,* from t_bd_item_info) c  

   WHERE  b.item_clsno = c.item_midclsno and  

         ( a.item_no = c.item_no ) and  

         ( a.oper_date BETWEEN '2022-01-01' AND '2022-11-30' ) AND  

         ( c.item_clsno like '%' ) and

         ( a.branch_no like '%' ) and

         ( a.supcust_no like '%' ) and

         ( b.item_flag = '0' )  

GROUP BY item_midclsno,Month(a.oper_date)

  • peakbrutal peakbrutal(提问者) 消息 156,级别 15,状态 1,第 3 行 关键字 \'select\' 附近有语法错误。 消息 102,级别 15,状态 1,第 3 行 \')\' 附近有语法错误。 消息 102,级别 15,状态 1,第 21 行 \'c\' 附近有语法错误。
    2022-12-02 10:58 
  • peakbrutal peakbrutal(提问者) 提示这个
    2022-12-02 10:59 
  • 用户k6280494 用户k6280494 回复 peakbrutal(提问者) 少个逗号
    2022-12-02 11:00 
  • 用户k6280494 用户k6280494 回复 peakbrutal(提问者) 按月份分组
    2022-12-02 11:02 
  • peakbrutal peakbrutal(提问者) 谢谢
    2022-12-02 11:41 
最佳回答
0
帆软用户s1Pwsa2BAQLv5初级互助
发布于2022-12-1 14:14

肯定要把时间放到分组里面的,给时间字段加个MONTH(时间字段)格式化放在group by 后面,以月份来分组,查询的字段里也可以以加一个MONTH(时间字段) 月份

最佳回答
0
yzm208116Lv4见习互助
发布于2022-12-1 14:18

Month(a.oper_date)获取月份,再用group by按月分组

最佳回答
0
帆软用户34O0RPaMtXLv3见习互助
发布于2022-12-2 11:37

SELECT c.item_midclsno as item_clsno_second,

       month(a.oper_date) mon,

       (select item_clsname from t_bd_item_cls where item_clsno = c.item_midclsno) as item_clsname,

       sum(a.sale_qty),

       sum(a.sale_amt),

       sum(a.ret_qty),

       sum(a.ret_amt),

       sum(a.giv_qty),

       sum(a.giv_amt)

  FROM t_rm_daysum a,

       t_bd_item_cls b,

       (select substring(item_clsno,1,2 *

                         convert(int,

                                 (select sys_var_value

                                    from t_sys_system

                                   where sys_var_id = 'gl_itm_cls_nolen'))) as item_midclsno,

               *

          from t_bd_item_info) c

 WHERE b.item_clsno = c.item_midclsno

   and a.item_no = c.item_no

   and a.oper_date BETWEEN '2022-01-01' AND '2022-11-30'

   and c.item_clsno like '%'

   and a.branch_no like '%'

   and a.supcust_no like '%'

   and b.item_flag = '0'

 GROUP BY item_midclsno,month(a.oper_date)

  • 5关注人数
  • 451浏览人数
  • 最后回答于:2022-12-2 11:37
    请选择关闭问题的原因
    确定 取消
    返回顶部