sql 分组小计与合计语法 30

我想做一个分组的小计与合计,发现有一个问题初始代码:selectcasewhengrouping(oil_name)=1andgrouping(oildepot_name... 我想做一个分组的小计与合计,发现有一个问题
初始代码:select case when grouping(oil_name)=1 and grouping(oildepot_name)=0 then N'小计' else isnull(oildepot_name,'') end '出油库',case when grouping(oildepot_name)=1 then N'合计' else isnull(oil_name,'') end '油品',sum(qty) as '数量'from tb_Tally_SaleReceivables where unit_name='吨' group by oildepot_name,oil_name with rollup

显示的数据很正常
但是 当我加上单位一列之后:
select case when grouping(oil_name)=1 and grouping(oildepot_name)=0 then N'小计' else isnull(oildepot_name,'') end '出油库',case when grouping(oildepot_name)=1 then N'合计' else isnull(oil_name,'') end '油品',unit_name as '单位',sum(qty) as '数量'from tb_Tally_SaleReceivables where unit_name='吨' group by oildepot_name,oil_name,unit_name with rollup

就会多出一行小计行,问题可能出现在group by分组里面,现在我想问一下,怎么样才能避免图2的问题,就是说不管我怎么分组,小计行永远只会有一条 希望高手解答,高分送上
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏30(财富值+成长值)
tj_angela
推荐于2017-07-18 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2582万
展开全部
group by oildepot_name,oil_name with rollup
改成
group by rollup(oildepot_name),oil_name
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
家有一只羊
2014-09-21 · 超过58用户采纳过TA的回答
知道小有建树答主
回答量:242
采纳率:0%
帮助的人:107万
展开全部
看图就知道是没办法合组呗,将NULL值ISNULL一下,看你这单位也没有第二种,直接就null时为吨,自然就能合组了呗
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
恶人报到
2014-09-20 · TA获得超过341个赞
知道小有建树答主
回答量:617
采纳率:20%
帮助的人:337万
展开全部
你解决的话能把代码贴上来吗?学习一下,谢谢
追问
with rollup having ((grouping(oil_name)=0 and grouping(oildepot_name)=0  and grouping(unit_name)=0) or ( grouping(oil_name)=1 and grouping(oildepot_name)=0 and grouping(unit_name)=1 ) )
加上条件就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式