首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

三个表关联有关问题,马上给分

2012-02-20 
三个表关联问题,马上给分我现在有三个表,一个表users记录所有人的信息。一个表A记录基本工资一个表B记录奖

三个表关联问题,马上给分
我现在有三个表,   一个表users记录所有人   的信息。
一个表A记录基本工资
一个表B记录奖金

结构如下

            users
--------------------
userId           varchar(50)
userName       varchar(50)

                A
--------------------
time               datetime
userId           varchar(50)
money             int

                B
--------------------
time               datetime
userId           varchar(50)
money             int


他们目前的结果如下:
users
------------------
user1     小王
user2     小红

A
-------------------
2007-1-2       user1       50
2007-1-2       user2       100

B
-------------------
2007-1-2       user1       200


我想使用一条关联查询,最后的结果为

日期                 姓名         工资         奖金        
----------------------------------------
2007-1-2         小王           50             200
2007-1-2         小红           100             0


实在是不会写,高手指教啊。马上给分。谢谢了。



[解决办法]
declare @date1 varchar(10)
set @date1= '2007-01-02 '
select isnull(CONVERT(varchar(10),a.time,21),CONVERT(varchar(10),b.time,21)) 日期,u.userName 姓名,isnull(a.money,0)as 工资,isnull(b.money,0)as 奖金
from users u
left join a on a.userId=u.userId --去掉这个and a.money <> 0
left join b on b.userId=u.userId --去掉这个and b.money <> 0
inner join users c on u.userId=c.userId
where isnull(CONVERT(varchar(10),a.time,21),CONVERT(varchar(10),b.time,21)) is not null
and (datediff(day,b.time,@date1)= 0 or datediff(day,a.time,@date1)= 0)

热点排行