当前位置:   article > 正文

sql server GROUPING() ,GROUPING SETS

sql server grouping

grouping函数用来区分NULL值,这里NULL值有2种情况,一是原本表中的数据就为NULL,二是由rollup、cube、grouping sets生成的NULL值。

当为第一种情况中的空值时,grouping(NULL)返回0;当为第二种情况中的空值时,grouping(NULL)返回1。实例如下,从结果中可以看到第二个结果集中原本为null的数据由于grouping函数为1,故显示ROLLUP-NULL字符串

SELECT RWJZ,RWJZ,RQ 日期,
CASE WHEN GROUPING(WLMC) = 1 THEN ‘小计:’ ELSE WLMC END 供应商名称,
CHMC,XH1,JLDW,SUM(RKSL) RKSL,CGDJ,SUM(CGJE) CGJE,
DJR 登记人,DJSJ 登记时间,DJTS 登记天数,CASE WHEN GROUPING(WLMC) = 1 THEN 1 ELSE 0 END XJZT FROM (
SELECT MID,WLMC+CHMC FZMC,RWJZ,CONVERT(VARCHAR(10),DJRKO.RQ,120) RQ,WLMC,CHMC,
XH1 ,XH2 ,XH3 ,GG1 ,GG2,GG3 ,JLDW , RKSL,
ROUND(CGDJ,4,1)CGDJ, CGJE,DJR,
convert(varchar(10),DJSJ,120) DJSJ,DATEDIFF(day,djrko.rq,djsj) DJTS
FROM DJRKO INNER JOIN DJRKM ON DJRKO.OID = DJRKM.OID WHERE CONVERT(DATE,DJRKO.RQ)
BETWEEN ‘2021-08-30’ AND '2021-12-30’AND DJRKM.OID LIKE ‘CR%’) A
GROUP BY
GROUPING SETS
(FZMC,
(FZMC,CHMC,WLMC,MID,RQ,XH1,XH2,XH3,GG1,GG2,GG3,JLDW,RKSL,CGDJ,CGJE,DJR,RWJZ,DJSJ,DJTS,MID))
FZMC =WLMC+CHMC 多条合并单条
GROUPING SETS(排序值,排序列)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/345189
推荐阅读
相关标签
  

闽ICP备14008679号