现在有两张表,其中需要主要的字段有 表A : 房屋id 日期 金额 类别(里面有水费,点费,其它什么的) 然后表B: 房屋id 日期 金额 类别(里面也有水费,点费 ,但两个表里有可能其中的类别只有一个有) 现在需要的是取出 按照房屋 日期 类别 进行金额的统计 就是一个房间 这一天 各种类别费用的累加 。我应该怎么进行分组才能取出来啊? 因为两个类别里有相同的 也有不同的 谢谢了啊sql
解决方案 »
- 求一oracle存储过程
- oracle如何调用c++写的dll
- oracle连接数影响应用服务器读取数据
- 百分求救:insert失败后,oracle后台有没有记录下失败的信息?
- 用IMP导入时能一次导入多个用户吗? 在哪里能看到导入警告?
- 迷茫,数据库这路要怎么走,我现在22岁了,唉!还晚吗?
- 在SQL*PLUS里能正常运行,但在SQL*PLUS Worksheet中却报错:未连接!
- 小问题,求一SQL语句~!!!
- 紧急问题,求救高手,谢谢!
- pl/sql developer工具怎么查看包头和包体
- 讨论下物化视图
- 使用Convert Mysql to Oracle 4.0,oracle报Cannot load oci.dll library
t1 结构:`id` int(11) NOT NULL,
`room_id` int(11) NOT NULL,
`date` date NOT NULL,
`type1` int(11) NOT NULL,
`money` double(13,0) DEFAULT NULL,
t2 结构:`id` int(11) NOT NULL,
`room_id` int(11) NOT NULL,
`date` date NOT NULL,
`type2` int(11) NOT NULL,
`money` double(13,0) DEFAULT NULL,其中数据:我现在需要显示的样子: 房间 日期 类别1 类别2 类别3 类别4......
01 12-1 500 100 20就是按照类别把两个表中的金额按照房间 日期的进行累加下 然后在列表出来
with t1 as
(
select 1 rid,date'2013-09-10' rdate,2 tid,50 money from dual union all
select 1 rid,date'2013-09-10' rdate,4 tid,40 money from dual union all
select 2 rid,date'2013-09-11' rdate,1 tid,100 money from dual
),t2 as
(
select 1 rid,date'2013-09-10' rdate,1 tid,100 money from dual union all
select 2 rid,date'2013-09-11' rdate,2 tid,150 money from dual union all
select 1 rid,date'2013-09-11' rdate,3 tid,120 money from dual union all
select 2 rid,date'2013-09-11' rdate,1 tid,110 money from dual
)select rid,rdate,
sum(decode(tid,1,money,0)) "类别1",sum(decode(tid,2,money,0)) "类别2",
sum(decode(tid,3,money,0)) "类别3",sum(decode(tid,4,money,0)) "类别4"
from (select * from t1 union all select * from t2) t
group by rid,rdate
order by rid,rdate
rid rdate 类别1 类别2 类别3 类别4
------------------------------------------------------------------
1 1 2013/9/10 100 50 0 40
2 1 2013/9/11 0 0 120 0
3 2 2013/9/11 210 150 0 0
select *
from (select * from t1 union all select * from t2) t
pivot (sum(money) for tid in (1 "类别1",2 "类别2",3 "类别3",4 "类别4"))
order by rid,rdate
那应该在
from (select * from t1 union all select * from t2) t
这个里面把* 代替了?
FRevMoneyType 款项类型(字符串类型)
FRoomID 房屋
FBizDate 业务日期
FMoney 金额
以及其它字段....
表B:
FRoomID 房屋
FBizDate 业务日期
FDepositSortID 押金类别
FActGatheringAmo 已收金额
其它字段
(押金类别表里 有id 有名称 )表C:
FRoomID 房屋
FBizDate 业务日期
FDepositSortID 款项类别
FPayAmount 收款金额
其它字段
现在需要的就是按照日期 房屋ID 以及各种收费类别(3个表里的类别有的是名称 有的需要关联外键)以及各种类别的当天的统计金额来 应该怎么关联啊 非常万分感谢您啊
FRevMoneyType款项类型(字符串类型) FRoomID房屋 FBizDate业务日期 FMoney金额 以及其它字段....
水费 01 2013-09-12 50
电费 02 2013-09-11 100
复印费 02 2013-09-12 30表B:
FRoomID房屋 FBizDate业务日期 FDepositSortID押金类别 FActGatheringAmo已收金额 其它字段
(还有个押金类别表里 有id 有名称 )
01 2013-09-11 02 40
02 2013-09-10 01 50押金类别表:
id name
01 施工单位押金
02 装修登记证押金
03 物业费
04 水费表C:
FRoomID房屋 FBizDate业务日期 FDepositSort款项类别 FPayAmount收款金额 其它字段
01 2013-09-11 水费 60
02 2013-09-12 物业费 100最后需要的结果应该是这样的::房屋 日期 水费 电费 物业费 装修登记证押金 复印费 等等其它的所有费用01 2013-09-11 3个表水费的总价 3个表电费的总价 ...类推
01 2013-09-12 同上
02 2013-09-11 ...非常感谢您的帮助..