我对sql查询事情很陌生,所以如果我在以前的威胁中找不到答案,我会合适。
这就是我要找的东西。 我必须在地点和月份中分配金额。 位置在此DB中称为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'。
感谢您的帮助!
答案 0 :(得分:0)
使用GROUP BY
上的MONTH(archiveddatetime)
和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
的记录。