SQL数据库上的select sum功能如何实现符合条件的不同列数值统计?

A数量 B数量 C数量 A时间 B时间 C时间
20 9 88 2013-9-5 2012-2-2 2013-2-2
15 4 23 2013-8-1 2013-9-5 2013-5-2
59 9 15 2013-7-25 2013-7-25 2013-1-8

符合2013-9-5日期的A数量20+B数量4=24

如何用select sum语句实现以上的数值24?

我会有分给的啊

第1个回答  2013-09-05
首先:你这个表结构设计的就太不合理, 数据量大的时候查询将非常耗时耗资源。
你的问题是否可以这样理解?输入一个日期, 将改日期下A B C的数量(如果存在记录)求和输出?但是这样问题就出来了, 也就是说你只能每次查询一个日期下的数量总和, 而不能按日期来汇总数量总和, 所以说设计的结构不合理!

其次:你要的这个功能, 可以实现。
思路:
必定要用拼接语句, 动态查询出所有存在的唯一日期, 逐个日期查询A B C的数量, 求和!这样查询出来的就是按日期汇总的数量了。

不知道你是否理解?
第2个回答  2013-09-05
这样
declare @sdate date
select @sdate='2013/9/5'
select SUM(
case when A日期=@sdate then A数量 else 0 end +
case when B日期=@sdate then B数量 else 0 end +
case when C日期=@sdate then C数量 else 0 end
) as 总数
from 表名

祝你成功!本回答被提问者采纳
第3个回答  2013-09-05
你是想查找A数量+B数量=24的数据吗??
相似回答