日期:2014-05-18 浏览次数:20655 次
SELECT * FROM 表名 WHERE CAST(SUBSTRING(CONVERT(CHAR(8),开始时间,108),1,2) AS INT) > 0 /** 机器号 开始时间 班次 开机时间总和 关机时间总和 ______________________________________________________________ 801 2012-02-13 18:30:00.000 甲 5.2 0.3 801 2012-02-14 18:30:01.000 甲 5.2 0.3 801 2012-02-14 06:30:05.000 乙 11.6 0.4 801 2012-02-15 18:30:01.000 甲 6.2 0.3 801 2012-02-15 06:30:05.000 乙 11.6 0.4 **/
------解决方案--------------------
参考
with TT
as(
select ROW_NUMBER() over( order by getdate()) as no,*
from TB )
select A.*
from TT A
where no in (select max(no) as no from TT
where A.班次 = 班次
and A.机器号=机器号
group by convert(varchar(10),开始时间,120) ,班次)
/*
1 801 2012-02-13 18:30:00.000 甲 5.2 0.3
3 801 2012-02-14 06:30:05.000 乙 11.6 0.4
4 801 2012-02-14 18:30:01.000 甲 5.2 0.3
6 801 2012-02-15 06:30:05.000 乙 11.6 0.4
7 801 2012-02-15 18:30:01.000 甲 6.2 0.3
8 801 2012-02-16 00:00:03.000 甲 6.1 0.4*/