日期:2014-05-18 浏览次数:20745 次
select a.name,isnull(aa,0) as aa,isnull(bb,'0') as bb from (select distinct name from t_table) a left join t_table b on a.name=b.name and b.date='2012-05-20'
------解决方案--------------------
--> 测试数据:[t_Table]
if object_id('[t_Table]') is not null drop table [t_Table]
create table [t_Table](
[Name] varchar(6),
[Date] datetime,
[AA] int,
[BB] varchar(2)
)
insert [t_Table]
select '设备一','2012-05-18',88,'01' union all
select '设备一','2012-05-17',99,'25' union all
select '设备二','2012-05-18',55,'69' union all
select '设备二','2012-05-17',33,'58' union all
select '设备三','2012-05-18',22,'93' union all
select '设备四','2012-05-18',55,'21' union all
select '设备五','2012-05-18',77,'22'
--查询的是 2012-05-18 的数据
select a.Name,isnull(b.AA,0) AA,ISNULL(b.BB,'0') BB
from(
select [Name] from [t_Table])a
left join (
select * from [t_Table] where [Date]='2012-05-18')b
on a.[Name]=b.[Name]
/*
Name AA BB
-----------------
设备一 88 01
设备一 88 01
设备二 55 69
设备二 55 69
设备三 22 93
设备四 55 21
设备五 77 22
*/
--查询的是2012-05-20的数据
select a.Name,isnull(b.AA,0) AA,ISNULL(b.BB,'0') BB
from(
select [Name] from [t_Table])a
left join (
select * from [t_Table] where [Date]='2012-05-20')b
on a.[Name]=b.[Name]
/*
Name AA BB
------------------
设备一 0 0
设备一 0 0
设备二 0 0
设备二 0 0
设备三 0 0
设备四 0 0
设备五 0 0
*/