sqlsql基础语句sum case和sum 一起出现时怎么显示

VB中SQL,如何同时使用sum()、count()语句?-CSDN论坛
VB中SQL,如何同时使用sum()、count()语句?
名称&&数量
现在需要获得的表是
名称&&数量&&条数
a&&&&&&11&&&&2&
b&&&&&&3&&&&&1
c&&&&&&3&&&&&1
请问VB中.Open&sql,&sConn,&3,&1,中sql怎么写?
SELECT&名称,SUM(数量)&AS&数量,COUNT(1)&AS&条数&FROM&TB&GROUP&BY&名称
求和是SUM,求行数是COUNT
不过有时候求行数也可以利用SUM(CASE&WHEN...
select&名称,数量=sum(数量),&条数=count(1)&from&tb&group&by&&名称
只能按时间给分了
回复求教:SQL语句,SUM CASE统计分量,怎样表示其他?
[问题点数:40分,结帖人ruanjian_hai]
本版专家分:0
结帖率 83.33%
CSDN今日推荐
本版专家分:1306
本版专家分:23581
2017年12月 总版技术专家分月排行榜第一2017年11月 总版技术专家分月排行榜第一2017年10月 总版技术专家分月排行榜第一
2017年12月 Oracle大版内专家分月排行榜第一2017年12月 其他开发语言大版内专家分月排行榜第一2017年11月 Oracle大版内专家分月排行榜第一2017年11月 其他开发语言大版内专家分月排行榜第一2017年10月 Oracle大版内专家分月排行榜第一
2017年11月 扩充话题大版内专家分月排行榜第二2017年10月 扩充话题大版内专家分月排行榜第二2017年9月 Oracle大版内专家分月排行榜第二
2018年1月 Oracle大版内专家分月排行榜第三
本版专家分:23581
2017年12月 总版技术专家分月排行榜第一2017年11月 总版技术专家分月排行榜第一2017年10月 总版技术专家分月排行榜第一
2017年12月 Oracle大版内专家分月排行榜第一2017年12月 其他开发语言大版内专家分月排行榜第一2017年11月 Oracle大版内专家分月排行榜第一2017年11月 其他开发语言大版内专家分月排行榜第一2017年10月 Oracle大版内专家分月排行榜第一
2017年11月 扩充话题大版内专家分月排行榜第二2017年10月 扩充话题大版内专家分月排行榜第二2017年9月 Oracle大版内专家分月排行榜第二
2018年1月 Oracle大版内专家分月排行榜第三
匿名用户不能发表回复!|
CSDN今日推荐CASE 与SUM 的使用 SQL 语句_百度知道
CASE 与SUM 的使用 SQL 语句
现在要根据case中条件的不同进行进行sum
WHEN YF_ZYFYMX.YFDW=YK_TYPK.BFDW
THEN SUM(YK_YPCD.JHJG/YK_TYPK.YFBZ*YF_ZYFYMX.YPSL)
WHEN YF_ZYFYMX.YFDW&&YK_TYPK.BFDW THEN SUM(YK_YPCD.JHJG*YF_ZYFYMX.YPSL)
Select sum ( YF_ZYFYMX.YPSL *YK_YPCD.JHJG ) From YF_ZYFYMX , YK_YPCD Where YF_ZYFYMX.YFSB =3 And YF_ZYFYMX.YPXH =YK_YPCD.YPXH And YF_ZYFYMX.YPCD =YK_YPCD.YPCD And YF_ZYFYMX.JFRQ & ' 23:59:59.000' And YF_ZYFYMX.JFRQ &= ' 23:59:59.000' And YF_ZYFYMX.YFSB =3 ;这是原来错误结果的语句,就是YK_YPCD.JHJG中这里还要细分,要在这里进行判断进行case,但是出来的结果只能有一个数字,用group by的话就不是所有的求和了。已经自己弄好了:Select sum ( YF_ZYFYMX.YPSL *(CASE
WHEN YK_TYPK.YPDW&&YK_TYPK.BFDW THEN YK_YPCD.JHJG/YK_TYPK.ZXBZ
WHEN YK_TYPK.YPDW=YK_TYPK.BFDW
THEN YK_YPCD.JHJG
END )) From YF_ZYFYMX , YK_YPCD,YK_TYPK Where YF_ZYFYMX.YFSB =3 And YF_ZYFYMX.YPXH =YK_YPCD.YPXH And YK_TYPK.YPXH=YF_ZYFYMX.YPXH AND YK_TYPK.YPXH=YK_YPCD.YPXH And YF_ZYFYMX.YPCD =YK_YPCD.YPCD And YF_ZYFYMX.JFRQ & ' 23:59:59.000' And YF_ZYFYMX.JFRQ &= ' 23:59:59.000' And YF_ZYFYMX.YFSB =3 ;
我有更好的答案
没有group by,你的条件用到的字段都需要在Group By里出现select sum(case 1 then result1 when 2 then result2 end) as result from table group by ?
采纳率:60%
select sum(a)as nums into #temp from table1 where b=3 例如,该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式
你想按什么分组啊?没有group by 你怎么能弄出SUM?你也可以不同列啊select case when 条件1 then 结果1 end as 列1,case when 条件2 then 结果2 end as 列2......
说不清楚为什么,但是我认为应该先写case语句,然后把结果当成子查询再进行sum
其他1条回答
为您推荐:
其他类似问题
case的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。用sum 和case when 实现分别统计遇到的问题
[问题点数:40分,结帖人wildwave]
本版专家分:0
结帖率 90%
CSDN今日推荐
本版专家分:25432
2011年3月 Oracle大版内专家分月排行榜第一2011年1月 Oracle大版内专家分月排行榜第一2010年12月 Oracle大版内专家分月排行榜第一
2011年4月 Oracle大版内专家分月排行榜第二
2011年2月 Oracle大版内专家分月排行榜第三2010年11月 Oracle大版内专家分月排行榜第三
本版专家分:14869
2011年4月 Oracle大版内专家分月排行榜第一
2011年6月 Oracle大版内专家分月排行榜第二2011年5月 Oracle大版内专家分月排行榜第二
本版专家分:161
本版专家分:14869
2011年4月 Oracle大版内专家分月排行榜第一
2011年6月 Oracle大版内专家分月排行榜第二2011年5月 Oracle大版内专家分月排行榜第二
本版专家分:81
本版专家分:3073
2012年2月 Oracle大版内专家分月排行榜第二
本版专家分:3243
本版专家分:7981
2012年4月 Oracle大版内专家分月排行榜第一
本版专家分:5
本版专家分:270
2012年2月 扩充话题大版内专家分月排行榜第一2012年1月 挨踢职涯大版内专家分月排行榜第一2011年12月 挨踢职涯大版内专家分月排行榜第一
2012年2月 挨踢职涯大版内专家分月排行榜第三2011年11月 挨踢职涯大版内专家分月排行榜第三2011年10月 挨踢职涯大版内专家分月排行榜第三
本版专家分:60
本版专家分:20
本版专家分:9992
本版专家分:316
匿名用户不能发表回复!|
CSDN今日推荐将我编程中遇到的问题学习到的知识记录下来
SQL语句case when外用sum与count的区别
如下这个表TEST:
category | commdity | price
------------+------------+-------
办公用品 | 打孔器
厨房用具 | 菜刀
厨房用具 | 高压锅
厨房用具 | 叉子
厨房用具 | 擦菜板
办公用品 | 圆珠笔
如果我想把商品按照1000元以下,, 3000 以上分为三个档次显示出来,正确的语句是:
SELECT SUM (CASE WHEN price &= 1000 THEN 1 ELSE 0 END)AS low,
SUM (CASE WHEN price BETWEEN 1001 AND 3000 THEN 1 ELSE 0 END)AS mid,
SUM (CASE WHEN price & 3000 THEN 1 ELSE 0 END)AS high FROM TEST;
low | mid | high
-----+-----+------
当把上述语句的sum换成count时,得出结果:
low | mid | high
-----+-----+------
8如果只是用列来显示,SELECT COUNT(price) FROM TEST WHERE price &= 1000 可以得出正确的结果:
所以用sum的结果是对的。原因是什么呢?三个case语句效果相同,其实就是类似于增加一个字段,这个字段,满足条件的为1,不满足的是0,这样sum的效果,就是将所有的1加起来,也就是所有满足条件的记录个数。
而count,会不管是1还是0,都会统计,这样怎么算都是总条目数8个。
没有更多推荐了,

我要回帖

更多关于 sql语句中sum 的文章

 

随机推荐