Num 日期 区分 金额
1 2006/10/30 0 20
2 2006/10/30 0 20
3 2006/10/30 1 30
4 2006/10/30 1 40
5 2006/10/30 1 20
6 2006/10/31 0 20
7 2006/10/31 0 20
8 2006/10/31 0 30
9 2006/10/31 1 10
10 2006/10/31 1 30
11 2006/10/31 1 20
12 2006/10/31 1 10
主键为:Num
目标:选择DB中日期相同的数据作为一条记录,并且计算区分=0、1,金额的合计
样例:
检索结果:(括号中内容不需要显示,只是为了容易看清问题。)
日期 区分为0的金额 区分为1的金额
2006/10/30 40(20+20) 90(30+40+20)
2006/10/31 70(20+20+30) 70(10+30+20+10)
如何构造该SQL,能不能用一个SQL语句实现.
1 2006/10/30 0 20
2 2006/10/30 0 20
3 2006/10/30 1 30
4 2006/10/30 1 40
5 2006/10/30 1 20
6 2006/10/31 0 20
7 2006/10/31 0 20
8 2006/10/31 0 30
9 2006/10/31 1 10
10 2006/10/31 1 30
11 2006/10/31 1 20
12 2006/10/31 1 10
主键为:Num
目标:选择DB中日期相同的数据作为一条记录,并且计算区分=0、1,金额的合计
样例:
检索结果:(括号中内容不需要显示,只是为了容易看清问题。)
日期 区分为0的金额 区分为1的金额
2006/10/30 40(20+20) 90(30+40+20)
2006/10/31 70(20+20+30) 70(10+30+20+10)
如何构造该SQL,能不能用一个SQL语句实现.
日期,
sum(case 区分 when 0 then 金额 else 0 end) as 区分为0的金额,
sum(case 区分 when 1 then 金额 else 0 end) as 区分为1的金额
from
tablename
group by
日期
还有什么怪招没 :)
这些语句在Oracle中是否照常可行阿
有些可以有些不行,具体还是看oracle的帮助 :)
日期,
sum(decode(区分,0,金额,0)) as 区分为0的金额,
sum(decode(区分,1,金额,0)) as 区分为1的金额
from
tablename
group by
日期