DECLARE @SQL VARCHAR(8000)
SET @SQL='SELECT CONVERT(VARCHAR(10),DacTime,120)'
DECLARE @INDEX INT
SET @INDEX=1
WHILE @INDEX<=24
BEGIN
SET @SQL=@SQL+',SUM(CASE WHEN DATEPART(HH,DacTime)='+CAST(@INDEX AS VARCHAR(2))+' THEN 1 END)['+CAST(@INDEX AS VARCHAR(2))+']'
SET @INDEX=@INDEX+1
END
SET @SQL=@SQL+'FROM [SURF_DeviceDataHist] where DateDiff(dd,DacTime,getdate())=1 GROUP BY CONVERT(VARCHAR(10),DacTime,120)'
EXEC(@SQL)
下面是查询结果
我想取消那个无列名的显示
然后把1到24每个字段数据取出来 判断是不是等于3