我有两张表A
ID 入库时间 字段其他
20070101 2007-01-01 8:00:25 ........
20070102 2007-01-01 8:00:25 .........
20070103 2007-01-01 8:01:21 .........
表B
ID 税种 税额
20070101 营业税 200
20070101 个人所得税 100
20070102 城建税 100
20070102 营业税 150
20070103 个人所得税 120
现在我所要得到的结果为:
时间 ID 营业税 个人所得税 城建税 合计
2007-01-01 8:00:25 20070101 200 100 0 300
20070102 150 0 100 250
2007-01-01 8:00:25总共开了两张, 250 100 100 450
2007-01-01 8:01:21 20070103 0 120 0 120
2007-01-01 8:01:21总共开了一张 0 120 0 120
合计 600 440 200 1240
这种统计该怎么写SQL语句,望高手们多多赐教,很急呀,在线等
ID 入库时间 字段其他
20070101 2007-01-01 8:00:25 ........
20070102 2007-01-01 8:00:25 .........
20070103 2007-01-01 8:01:21 .........
表B
ID 税种 税额
20070101 营业税 200
20070101 个人所得税 100
20070102 城建税 100
20070102 营业税 150
20070103 个人所得税 120
现在我所要得到的结果为:
时间 ID 营业税 个人所得税 城建税 合计
2007-01-01 8:00:25 20070101 200 100 0 300
20070102 150 0 100 250
2007-01-01 8:00:25总共开了两张, 250 100 100 450
2007-01-01 8:01:21 20070103 0 120 0 120
2007-01-01 8:01:21总共开了一张 0 120 0 120
合计 600 440 200 1240
这种统计该怎么写SQL语句,望高手们多多赐教,很急呀,在线等
解决方案 »
- 写了N年SQL,被这个SQL难住了
- oracle 数据库备份和还原(rman)方式
- oracle EBS
- oracle9i 如何导出导入库结构、表结构?能否通过SQL语句实现?
- 如何把某一个用户的所有表和数据都导出来,然后如何再导入另一个库里按这个用户?
- 请教sql* plus 问题
- 大家帮忙,Oracel启动怎么和IIS有冲突,Httpserver启动就报java.exe应用程序错误,内存xxxxxxx不能为只读
- 问个面面的问题
- ORACLE操作历史查询
- oracle 正则表达式替换特定标签及里面内容
- ORACLE9I在LINUX rethat 下怎么安装??
- 一个数据库可以对应多个Service_name,一个Service_name呢?
select 入库时间,id,营业税,个人所得税,城建税,营业税+个人所得+城建税 as "合计"
(
select a.入库时间,
max(a.id) as id,
max(decode(b.税种,'营业税',b.税额,null)) as "营业税",
max(decode(b.税种,'个人所得税',b.税额,null)) as "个人所得税",
max(decode(b.税种,'城建税',b.税额,null)) as "城建税"
from 表A a,表B b
where a.id = b.id
group by a.a.入库时间
)
select 入库时间,id,营业税,个人所得税,城建税,
nvl(营业税,0)+nvl(个人所得,0)+nvl(城建税,0) as "合计"
(
select a.入库时间,
max(a.id) as id,
max(decode(b.税种,'营业税',b.税额,null)) as "营业税",
max(decode(b.税种,'个人所得税',b.税额,null)) as "个人所得税",
max(decode(b.税种,'城建税',b.税额,null)) as "城建税"
from 表A a,表B b
where a.id = b.id
group by a.a.入库时间
)
nvl(营业税,0)+nvl(个人所得,0)+nvl(城建税,0) as "合计"
(
select a.入库时间,
a.id,
max(decode(b.税种,'营业税',b.税额,null)) as "营业税",
max(decode(b.税种,'个人所得税',b.税额,null)) as "个人所得税",
max(decode(b.税种,'城建税',b.税额,null)) as "城建税"
from 表A a,表B b
where a.id = b.id
group by a.a.入库时间,a.id
)
1 2007-1-1 8:00:10 20070101 200 100 300
2 2007-1-1 8:00:10 20070102 150 100 250
3 2007-1-2 1:12:00 20070103 120 120但是我要的结果是
入库时间 ID 营业税 个人所得税 城建税 合计
2007-01-01 8:00:25 20070101 200 100 0 300
20070102 150 0 100 250
2007-01-01 8:00:25总共开了两张, 350 100 100 5502007-01-01 8:01:21 20070103 0 120 0 120
2007-01-01 8:01:21总共开了一张 0 120 0 120合计 350 220 100 670