有两张表的内容如下:
A表如下: B表如下:
Name age Date BookName Date
Abc 12 1973-01-01 Delphi 1973-01-01
cde 18 1973-02-03 C++ 2002-01-01
ddd 20 1974-02-03要求按时间分组,每一个时间一条记录,最后得到如下形式的数据形式:
Date Name age BookName
1973-01-01 Abc 12 Delphi
1973-02-03 cde 18 null
1974-02-03 ddd 20 null
2002-01-01 null null C++可以吗?
A表如下: B表如下:
Name age Date BookName Date
Abc 12 1973-01-01 Delphi 1973-01-01
cde 18 1973-02-03 C++ 2002-01-01
ddd 20 1974-02-03要求按时间分组,每一个时间一条记录,最后得到如下形式的数据形式:
Date Name age BookName
1973-01-01 Abc 12 Delphi
1973-02-03 cde 18 null
1974-02-03 ddd 20 null
2002-01-01 null null C++可以吗?
from A left join B on convert(varchar(10), A.date, 120)=convert(varchar(10), B.date, 120)
group by convert(varchar(10), A.date, 120), A.Name, A.age--(没有不可以,只有喝多了酒!)
select a.Date, a.Name, a.age, b.BookName
from a
left join b
on b.Date = a.Date
union
select c.date, null, null, c.bookname
from b c
where c.date not in (select [date] from a)
试了,成功~
http://expert.csdn.net/Expert/topic/2674/2674640.xml?temp=.2479975