读书人

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

发布时间: 2012-02-20 21:18:23 作者: rapoo

三个表关联问题,马上给分
我现在有三个表, 一个表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)

读书人网 >SQL Server

热点推荐