【发布时间】:2020-03-26 19:15:43
【问题描述】:
我的基本查询:
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) 有一个限制,这意味着在特定日期总是只能有一个项目生产的记录。
重复的记录,具有相同的 id,并且在两个日期都存在并且具有不同生产值(需要)
单条记录,仅存在于其中一个日期(需要)
问题:*
重复的记录,具有相同的 ID,并且存在于两个日期并且具有相等生产值(不需要)
我当前的查询,需要更改
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 目前不处理第三个约束(重复记录,具有相同的 id,并且存在于两个日期并且具有相等的生产值 (不想要) em>)
是否有任何可能的条件可以适应这种情况?
【问题讨论】:
-
您的数据没有显示与每条记录相关的日期,而这里似乎是一条重要信息。
-
你在第一个基本查询上是对的@GMB,我忘了添加它们。现已编辑