2015-04-30 41 views
0

我很新的sql查询的东西,所以我appoligize如果我在以前的威胁找不到答案。获取SQL查询结果每月过滤和Excel文件

这就是我要找的。 我必须在地点和月份分割金额。 位置在此数据库中称为HOST。本月可以在名为archiveddatetime的表的结果中找到。

我现在得到的是:

13倍相同的查询,但随后手动输入where子句用了一个月的语句。如果我这样做,并且我有3个不同的HOSTS,则意味着3x13结果可以手动复制到Excel中。这是我想要自动化。

这是我到目前为止的代码:

SELECT COUNT(*)AS TotalAmountOfArchivedStudies2014BHU03 
FROM receivedstudies 
WHERE (archiveddatetime BETWEEN '2014-01-01 00:00:00.000' AND '2015-01-01 00:00:00.000') 
     AND (HOST LIKE 'ABC01%'); 

SELECT COUNT(*)AS TotalAmountOfArchivedStudies2014BHU03 
FROM receivedstudies 
WHERE (archiveddatetime BETWEEN '2014-01-01 00:00:00.000' AND '2014-02-01 00:00:00.000') 
     AND (HOST LIKE 'ABC01%'); 

SELECT COUNT(*)AS TotalAmountOfArchivedStudies2014BHU03 
FROM receivedstudies 
WHERE (archiveddatetime BETWEEN '2014-02-01 00:00:00.000' AND '2014-03-01 00:00:00.000') 
     AND (HOST LIKE 'ABC01%'); 

我知道有最多可放13个结果变成一个查询的一种方法,这可以萨法德到Excel中。但也可能是在同一个查询中HOST'ABC02'和'ABC03'。

感谢您的帮助!

+2

使用'MONTH()'函数;)。 –

回答

0

使用上MONTH(archiveddatetime)GROUP BY随着WITH ROLL UP

select HOST,MONTH(archiveddatetime),COUNT(*) As TotalAmountOfArchivedStudies 
from receivedstudies 
where Year(archiveddatetime) = 2014 
GROUP BY HOST,MONTH(archiveddatetime) 
WITH ROLLUP 

Rollup会给你累积COUNTs记录为好。

+0

感谢ughai IT以您的榜样为您解决问题。 – user2515528