我有以下存儲過程,迄今爲止工作正常。SQL Server:合併來自聯盟的所有行選擇
是否有更快/更好的方式來編寫此代碼,以便我不必將相同的從行添加到每個選擇?
我的存儲過程:
ALTER PROCEDURE [dbo].[CountEsc]
@date0 nvarchar(20),
@date1 nvarchar(20),
@date2 nvarchar(20),
@date3 nvarchar(20),
@date4 nvarchar(20),
@date5 nvarchar(20)
AS
BEGIN
SET NOCOUNT ON;
SELECT COUNT(*) AS groupCount
FROM Log_Esc
WHERE dateEsc LIKE @date0+'%'
UNION ALL
SELECT COUNT(*) AS groupCount
FROM Log_Esc
WHERE dateEsc LIKE @date1+'%'
UNION ALL
SELECT COUNT(*) AS groupCount
FROM Log_Esc
WHERE dateEsc LIKE @date2+'%'
UNION ALL
SELECT COUNT(*) AS groupCount
FROM Log_Esc
WHERE dateEsc LIKE @date3+'%'
UNION ALL
SELECT COUNT(*) AS groupCount
FROM Log_Esc
WHERE dateEsc LIKE @date4+'%'
UNION ALL
SELECT COUNT(*) AS groupCount
FROM Log_Esc
WHERE dateEsc LIKE @date5+'%'
FOR XML PATH(''), ROOT('ranks')
END
我得到的XML:
<ranks>
<groupCount>0</groupCount>
<groupCount>5</groupCount>
<groupCount>3</groupCount>
<groupCount>6</groupCount>
<groupCount>1</groupCount>
<groupCount>0</groupCount>
</ranks>
與此的任何幫助,蒂姆非常感謝。
會的日期始終是相同的長度?日期總是不一樣嗎? –
是的,日期總是相同的長度(格式:yyyy-mm,例如2014-04),並且總是會有所不同。 – user2571510
您可以發佈樣本數據和預期結果的模擬嗎? –