如下所示,如果campaignIds相等,我想讓它們成組。但我不知道該怎麼做。按CampaignId分組無效。在tsql中對行進行分組
活生生的例子:http://www.sqlfiddle.com/#!3/cb1dd/2
如下所示,如果campaignIds相等,我想讓它們成組。但我不知道該怎麼做。按CampaignId分組無效。在tsql中對行進行分組
活生生的例子:http://www.sqlfiddle.com/#!3/cb1dd/2
查找到SQL Server中使用支點功能,它可能會導致更可讀的SQL http://msdn.microsoft.com/en-gb/library/ms177410(v=sql.105).aspx
SELECT CampaignId, [1] AS Rate1, [2] AS Rate2, [3] AS Rate3
FROM
(SELECT CampaignId, RateNumber, RateValue
FROM CampaignRate) p
PIVOT
(
SUM (RateValue)
FOR RateNumber IN
([1], [2], [3])
) AS pvt
ORDER BY pvt.CampaignId;
GO
它應該得到每率數字評分的總和?您可以在CampaignID和SUM()
函數上使用Group By
。
select CampaignId,
sum(case when RateNumber = 1 then RateValue else null end) as Rate1,
sum(case when RateNumber = 2 then RateValue else null end) as Rate2,
sum(case when RateNumber = 3 then RateValue else null end) as Rate3,
sum(case when RateNumber = 4 then RateValue else null end) as Rate4,
sum(case when RateNumber = 5 then RateValue else null end) as Rate5,
sum(case when RateNumber = 6 then RateValue else null end) as Rate6,
sum(case when RateNumber = 7 then RateValue else null end) as Rate7,
sum(case when RateNumber = 8 then RateValue else null end) as Rate8,
sum(case when RateNumber = 9 then RateValue else null end) as Rate9,
sum(case when RateNumber = 10 then RateValue else null end) as Rate10,
sum(case when RateNumber = 11 then RateValue else null end) as Rate11,
sum(case when RateNumber = 12 then RateValue else null end) as Rate12,
sum(case when RateNumber = 13 then RateValue else null end) as Rate13,
sum(case when RateNumber = 14 then RateValue else null end) as Rate14,
sum(case when RateNumber = 15 then RateValue else null end) as Rate15,
sum(case when RateNumber = 16 then RateValue else null end) as Rate16,
sum(case when RateNumber = 17 then RateValue else null end) as Rate17,
sum(case when RateNumber = 18 then RateValue else null end) as Rate18,
sum(case when RateNumber = 19 then RateValue else null end) as Rate19,
sum(case when RateNumber = 20 then RateValue else null end) as Rate20,
sum(case when RateNumber = 21 then RateValue else null end) as Rate21,
sum(case when RateNumber = 22 then RateValue else null end) as Rate22,
sum(case when RateNumber = 23 then RateValue else null end) as Rate23,
sum(case when RateNumber = 24 then RateValue else null end) as Rate24
from CampaignRate
group by CampaignId;
查看fiddle。
如果你歸了你的設計,這將很容易的聲明... – 2013-02-21 08:55:48
的正常化哪一個 ? – 2013-02-21 08:57:54
你想達到哪個結果? – 2013-02-21 08:58:18