Мой базовый запрос:
SELECT project_id
name
stories_produced
on_date
FROM project_prod
WHERE on_date IN ('2017-03-01', '2017-06-10')
ORDER BY project_id
Он может получить следующие выходные данные:
Пример вывода:
id name stories_produced on_date
1042 project 1 1001 (wanted) 2017-03-01
1042 project 1 1801 (wanted) 2017-06-10
1568 project 2 355 (wanted) 2017-06-10
1405 project 3 1 (not wanted) 2017-03-10
1405 project 3 1 (not wanted) 2017-06-10
Obs: есть ограничение для (id , on_date) означает, что на указанную c дату всегда может быть только одна запись о создании проекта.
Дублирующиеся записи, имеющие одинаковый идентификатор и существующие в обеих датах и имеющие разные производственные значения (требуется)
Отдельные записи, которые существуют только в одну из дат (требуется)
Проблема: *
Дубликаты записей, которые имеют одинаковый идентификатор и существуют в обеих датах и имеют равные производственные значения (не требуется)
Мой текущий запрос, нуждающиеся в изменении
select project_id
name
CASE
WHEN max(stories_produced) - min(stories_produced) = 0
THEN max(stories_produced)
ELSE max(stories_produced) - min(stories_produced)
END AS 'stories_produced'
from project_prod
WHERE on_date IN ('2017-03-01', '2017-06-10')
group by project_id;
пример вывода:
id name stories_produced
1042 project 1 800 (wanted)
1568 project 2 355 (wanted)
1405 project 3 1 (not wanted)
CASE в настоящее время не , заботясь о третьем ограничении (повторяющиеся записи, имеющие одинаковый идентификатор и существуют в обеих датах и имеют РАВНЫЕ производственные значения (не требуется) )
Есть ли возможность условие, которое может приспособить это?