由于根据 where (时间 between '2013-5-7 00:09:00' and '2013-5-7 00:09:59')条件 ,能返回结果,所以就算 测试项没有数据,也会有你上面的2行结果集
如果真的还有问题,我个人觉得可能的地方是: 1、字符类型,不过可能性很低:max(case [名称] when '测试项' then [数量] else null end )[测试项] 2、日期转换,时间列的数据类型和between那些的存在差异,Where (时间 between '2013-5-7 00:09:00' and '2013-5-7 00:09:59') 单纯看代码,应该是不会有结果的
if OBJECT_ID('tt2','U') is not null drop table tt2; create table tt2( 时间 datetime, 名称 varchar(20), 数量 float );
insert into tt2 values('2013-05-07 09:51:11', '电压' ,8.189); insert into tt2 values('2013-05-07 09:51:11','电流', 0.000); insert into tt2 values('2013-05-07 09:51:11', '功率', 0.000); insert into tt2 values('2013-05-07 09:51:15', '电压', 9.189); insert into tt2 values('2013-05-07 09:51:15', '电流', 1.000); insert into tt2 values('2013-05-07 09:51:15', '功率', 9.000);
select [时间], max(case [名称] when '测试项' then [数量] else null end )[测试项] From tt2 Where (时间 between '2013-05-07 00:09:00' and '2013-05-07 00:09:59') Group By [时间] Order By 时间 Asc
1、字符类型,不过可能性很低:max(case [名称] when '测试项' then [数量] else null end )[测试项]
2、日期转换,时间列的数据类型和between那些的存在差异,Where (时间 between '2013-5-7 00:09:00' and '2013-5-7 00:09:59') 单纯看代码,应该是不会有结果的
create table tt2(
时间 datetime,
名称 varchar(20),
数量 float
);
insert into tt2 values('2013-05-07 09:51:11', '电压' ,8.189);
insert into tt2 values('2013-05-07 09:51:11','电流', 0.000);
insert into tt2 values('2013-05-07 09:51:11', '功率', 0.000);
insert into tt2 values('2013-05-07 09:51:15', '电压', 9.189);
insert into tt2 values('2013-05-07 09:51:15', '电流', 1.000);
insert into tt2 values('2013-05-07 09:51:15', '功率', 9.000);
select [时间],
max(case [名称] when '测试项' then [数量] else null end )[测试项]
From tt2
Where (时间 between '2013-05-07 00:09:00' and '2013-05-07 00:09:59')
Group By [时间]
Order By 时间 Asc