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