求一个简单的sql语句 关于两表关联的问题
T1
id name Date1 num
1 user1 2007-02-01 3
2 user1 2007-02-02 6
3 user2 2007-02-01 7
T2
id Date2
1 2007-02-01
2 2007-02-02
3 2007-02-03
现在我想要两个表关联起来做一个查询
(根据T2中的记录)T1中的User1 在2007-02-03这一天没有记录产生,因此我想把查询的结果增加一条 “user1 2007-02-03 0”
查询结果如下:
name Date1 num
user1 2007-02-01 3
user1 2007-02-02 6
user1 2007-02-03 0
user2 2007-02-01 7
user2 2007-02-02 0
user2 2007-02-03 0
谢谢
------解决方案--------------------declare @a table(id int, name varchar(10),Date1 smalldatetime, num int)
insert @a select 1 , 'user1 ', '2007-02-01 ', 3
union all select 2 , 'user1 ', '2007-02-02 ', 6
union all select 3 , 'user2 ', '2007-02-01 ', 7
declare @b table(id int, Date2 smalldatetime)
insert @b select 1 , '2007-02-01 '
union all select 2 , '2007-02-02 '
union all select 3 , '2007-02-03 '
union all select 4 , '2007-02-04 '
select name,x date,max(num) num
from
(select name,case when date1=date2 then date1 else date2 end x,num =case when date1=date2 then num else 0 end from @a a , @b b )aa
group by name,x order by name
------解决方案--------------------select *,isnull((select num from t1 where t1.name=a.name and t1.date1=b.date1),0) as num from (select distinct name from t1) a,(select distinct date2 as date1 from t2) b order by name,date1