select sum(a) from test1 where name in ('01','02','01');
出现条件相同的情况下,数据库会默认有一个01的玩家信息,没有两次,
但是我数据库中要实现有条件的查询,也就是有多少个条件,无论相同和不相同,都按单个计算,然后统计求和,请问有没有高手帮忙解决一下。
出现条件相同的情况下,数据库会默认有一个01的玩家信息,没有两次,
但是我数据库中要实现有条件的查询,也就是有多少个条件,无论相同和不相同,都按单个计算,然后统计求和,请问有没有高手帮忙解决一下。
id name a
1 01 5
2 02 6
3 03 10select sum(a) from test1 where name in ('01','02','01'); 结果是11我要的结果应该是16,请问这个应该怎么实现
1 01 5
2 02 6
3 03 10
只有一个01?
id name a
1 01 5
2 02 6
3 03 10 select sum(a) from test1 where name in ('01','02','01'); 结果是11 发表于:2008-11-20 15:30:485楼 得分:0
引用 4 楼 tanqing008 的回复:
16是两个name为01对应a的值加上02对应a的值的和
id name a
1 01 5
2 02 6
3 03 10
只有一个01? 我条件里面有两个01,我要查询出这两个条件相同的a值,要分开出来,条件相同的不被其过滤掉,而是做为单独条件查询
SELECT * FROM TT WHERE NAME='01'
UNION ALL
SELECT * FROM TT WHERE NAME='02'
UNION ALL
SELECT * FROM TT WHERE NAME='01'
统计条件个数,用个数*SUM的值
真是矛盾啊,然道都单列查询,一个一个计算,那样数据库会受不了,数据条件太多了
id name a
1 01 5
2 02 6
3 03 10 临时表:
name
01
02
01连接就可以了