我需要制定一個t-sql查詢,到目前爲止,我一直無法這樣做。我需要查詢的表稱爲具有兩列的操作,一個FK OperationTypeID和一個OperationDate。查詢需要返回一個結果,該結果包含指定範圍內的操作類型id的計數。SQL查詢與分組由多個日期範圍
通過應用程序界面,用戶可以指定多個operationtype
Ids
以及它們各自的日期例如範圍是這樣,operationtype id
「A」可以在的範圍內尋找 22/04/2010
到22/04/2012
和operationtype Id
「B」可以被搜索在15/10/2012
到15/11/2013
等等其他operation type ids
。現在我需要在爲每個操作類型ID指定的每個範圍內爲每個操作類型ID返回一個計數。
考慮到性能問題,在單個t-sql查詢中實現這一點的最有效方法是什麼......下面給出了一個粗略的佈局,我不擅長格式化,所以我希望它仍然會給出一個想法。
+---------------+----------+----------+-----+
|OperationTypeID|Min date |Max Date |Count|
+---------------+----------+----------+-----+
|A |22/04/2010|22/04/2012|899 |
+---------------+----------+----------+-----+
|B |15/10/2012|15/11/2013|789 |
+---------------+----------+----------+-----+
....等等
將不勝感激,如果有人可以提供幫助。查詢需要根據用戶指定的最小/最大日期範圍爲每個操作類型標識返回一個計數。 sql服務器中可用的最小/最大函數可能不適用於此處。我迄今爲止想到的一種可能的方法是使用Union All方法,在這種方法中,我根據日期範圍爲單個操作類型id制定單個查詢,然後執行UNION All,任何性能影響?
我不明白的問題:-( – SamB
凡日期範圍爲每'OPERAT ionTypeID'從哪裏來? – peterm
@John你可以發佈你想要實現的示例輸出嗎?正如SamB所說,這個問題有點不清楚。 – Mureinik