我使用SQLServer 2008r2并拥有此查询:
SELECT top 18 id, obsDate,impact FROM diseaseHits WHERE diseaseID=2 AND pCode=3352 AND obsDate <= '2014/11/5 11:30:00 PM'
返回:
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
现在我想做的就是SUM这些。影响是一个int。我似乎无法让它工作。我不能做一个SELECT TOP 20 COUNT ....所以我尝试了这个:
SELECT count(impact) FROM DiseaseHits where DiseaseHits.ID IN(SELECT top 20 id FROM diseaseHits WHERE diseaseID=2 AND pCode=3352 AND obsDate <= '2014/11/5 11:30:00 PM' ORDER by obsDate desc ) ;
但没有运气。我怎样才能做到这一点?
谢谢
答案 0 :(得分:2)
我认为你可以使用子查询:
select sum(impact)
from (select top 18 id, obsDate, impact
from diseaseHits
where diseaseID = 2 AND pCode = 3352 AND obsDate <= '2014/11/5 11:30:00 PM'
) t;
我还建议您使用更标准的日期格式,例如'2014-11-05 11:30:00 PM'
。
答案 1 :(得分:0)
试试这个,
这是你想做的吗。
SELECT top 18 id, obsDate, impact, count(id) OVER() AS countOfid FROM diseaseHits WHERE diseaseID=2 AND pCode=3352 AND obsDate <= '2014/11/5 11:30:00 PM'