Я пытаюсь получить сводную статистику из таблицы, называемой "актами", в которой хранятся данные о пожертвованиях. В этом процессе я хотел бы получить таблицу со статистикой, касающейся всех пожертвований, неавтоматических пожертвований (DO) и автоматических пожертвований (PA). Для этого я использую два левых соединения (в одной таблице, но с разными предложениями group by).
Мой запрос возвращает следующую ошибку:
Код ошибки: 1054. Неизвестный столбец 'a.yr. в "на оговорку"
Не могли бы вы помочь мне найти решение этой проблемы или предложить другой путь для достижения моей цели? Большое спасибо!
SELECT
YEAR(a.act_date) AS yr,
SUM(a.amount) AS sum_all,
COUNT(a.amount) AS nb_all,
AVG(a.amount) AS avg_all,
COUNT(DISTINCT(a.contact_id)) AS unique_all,
sum_do,
nb_do,
avg_do,
unique_do,
sum_pa,
nb_pa,
avg_pa,
unique_pa
FROM
acts a
LEFT JOIN
(SELECT
YEAR(act_date) AS yr_do,
SUM(amount) AS sum_do,
COUNT(amount) AS nb_do,
AVG(amount) AS avg_do,
COUNT(DISTINCT(contact_id)) AS unique_do
FROM
acts
WHERE
YEAR(act_date) >= 1991 AND
act_type_id LIKE 'DO'
GROUP BY
1)
AS donation
ON a.yr = donation.yr_do
LEFT JOIN
(SELECT
YEAR(act_date) AS yr_pa,
SUM(amount) AS sum_pa,
COUNT(amount) AS nb_pa,
AVG(amount) AS avg_pa,
COUNT(DISTINCT(contact_id)) AS unique_pa
FROM
acts
WHERE
YEAR(act_date) >= 1991 AND
act_type_id LIKE 'PA'
GROUP BY
1)
AS pa
ON a.yr = pa.yr_pa
WHERE
YEAR(act_date) >= 1991
GROUP BY
1;
вы не можете использовать псевдоним в select в том же запросе
менять
ON a.yr = donation.yr_do
в
ON YEAR(a.act_date) = donation.yr_do