数据库多表符合查询

I)我的问题是这样的:

      下面有三个表:a表,b表,c表这三个是基本数据表;表d是我最后向要得到的表,由前三个表组合而成的。

 

表a:用户表                      表b:   水表

id    roomname               id     roomid(用户表的id)   waterFee(水费)   day(交费日期)
1         张三                      1             1                           10                      2010-03-21
2        李四                       2             2                           20                      2010-03-21
3        王五                       3             1                           30                      2010-03-22

 

表c:电表
id         roomid(用户表的id)     eleFee(电费)    day(交费日期)
1                 1                               40                 2010-03-21
2                 3                               30                  2010-03-21

 

 

表d:综合表
roomname        waterFee(水费)        eleFee(电费)          day(交费日期)
    张三                       10                             40                         2010-03-21
    李四                       20                              0                          2010-03-21
    王五                        0                              30                         2010-03-21
    张三                       30                              0                          2010-03-22

 

 

需要注意的:从a,b,c表中查找记录:将同一个用户名和交费日期的 水费、电费记录合并到一条记录,
如果只有水费 那电费为0 ,如果只有电费,那水费为0。

 

II)解决的方法:

 

select a.roomname, all.waterFee, all.eleFee, all.day from a, ( select b.roomid, b.waterFee, ISNULL(C.eleFee,0) as eleFee b.day from b left join c on b.roomid=c.roomid and b.day=c.day union all select c.roomid, ISNULL(b.waterFee,0) as waterFee, C.eleFee, c.day from c left join b on b.roomid=c.roomid and b.day=c.day ) as all where a.roomid=b.roomid

你可能感兴趣的:(JOIN,c,数据库,2010)