У меня есть код, который определяет количество «потерянных» доноров за каждый год. Я объединил каждый год, что доноры перестали использовать союзы. Я хотел бы, чтобы эти данные автоматически обновлялись каждый год без добавления в объединение. Есть ли способ, чтобы годы были динамичными?
Я использовал только текущий статический скрипт, который мне нужно, чтобы вытащить всех просроченных доноров с 2013 года. Предоставленный скрипт показывает 2017-2019.
--Donated 2018, Not 2019
SELECT DISTINCT
PY.OppFiscalYear, COUNT(DISTINCT PY.AccountId)
FROM
(SELECT DISTINCT PY.AccountId, PY.OppFiscalYear
FROM reporting.AllGifts PY
WHERE PY.OppFiscalYear = '2018'
AND PY.OpportunityRecordType IN ('Classy', 'Donation', 'Pledge')
AND PY.AccountRecordType = 'Household'
AND PY.OppStage = 'Paid') PY
LEFT JOIN
(SELECT DISTINCT Y.AccountId
FROM reporting.AllGifts Y
WHERE Y.OppFiscalYear = '2019'
AND Y.OpportunityRecordType IN ('Classy', 'Donation', 'Pledge')
AND Y.AccountRecordType = 'Household'
AND Y.OppStage = 'Paid') Y ON PY.ACCOUNTID = Y.ACCOUNTID
WHERE
Y.AccountId IS NULL
GROUP BY
PY.OppFiscalYear
UNION
--Donated 2017, Not 2018
SELECT DISTINCT
PY.OppFiscalYear, COUNT(DISTINCT PY.AccountId)
FROM
(SELECT DISTINCT PY.AccountId, PY.OppFiscalYear
FROM reporting.AllGifts PY
WHERE PY.OppFiscalYear = '2017'
AND PY.OpportunityRecordType IN ('Classy', 'Donation', 'Pledge')
AND PY.AccountRecordType = 'Household'
AND PY.OppStage = 'Paid') PY
LEFT JOIN
(SELECT DISTINCT Y.AccountId
FROM reporting.AllGifts Y
WHERE Y.OppFiscalYear = '2018'
AND Y.OpportunityRecordType IN ('Classy', 'Donation', 'Pledge')
AND Y.AccountRecordType = 'Household'
AND Y.OppStage = 'Paid') Y ON PY.ACCOUNTID = Y.ACCOUNTID
WHERE
Y.AccountId IS NULL
GROUP BY
PY.OppFiscalYear
Я ожидаю того же результата, что и в настоящее время, но я хочу, чтобы он мог автоматически включать любые новые пожертвования, добавляемые изо дня в день. Если бы я продолжал использовать свой текущий метод, новый сценарий, который нужно было бы добавить в верхнюю часть с объединением, предназначен для 2019 и 2020 годов.