赞
踩
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(排序值,排序列)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。