Server 2012 で次のスキーマとクエリを使用して、前年比の寄付レポートを作成しています。
CREATE TABLE Donation
(
HouseholdID INT,
HouseholdName VARCHAR(150),
[Donation] REAL,
DateOrdered DATE
);
INSERT Donation VALUES
(1,'The Smiths',50,'2011-01-01'),
(1,'The Smiths',75,'2012-02-02'),
(2,'The Wilsons',10,'2011-03-01'),
(2,'The Wilsons',60,'2011-07-01'),
(3,'The Kellys',500,'2012-06-01');
--Params
DECLARE @RunYear INT=2012
DECLARE @PriorYear INT=@RunYear-1
SELECT
[HouseholdID],[HouseholdName],YEAR(DateOrdered) [Year], MAX(Donation) [MaxGift], SUM(Donation) [TotalDonated]
FROM
Donation
WHERE
YEAR([DateOrdered]) IN (@RunYear,@PriorYear)
GROUP BY HouseholdID, [HouseholdName], YEAR(DateOrdered)
ORDER BY HouseholdID, YEAR(DateOrdered)
[DonatedInPriorYearOnly] のような列を追加したいと思いBIT
ます。これは、世帯が前年 (2011 年) に寄付を行ったが、実行年 (2012) に寄付がなかった場合にのみ 1 になります。
これはどのように達成できますか?