not exists
:我的基本查询:
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,并且在两个日期中都存在,并且具有相等的生产值(不需要)])] >>id name stories_produced 1042 project 1 800 (wanted) 1568 project 2 355 (wanted) 1405 project 3 1 (not wanted)
CASE当前正在not
是否有可能满足此条件?
我的基本查询:从project_prod中选择project_id名称为story_produced on_date,在on_date IN('2017-03-01','2017-06-10')ORDER BY project_id可以获取...
not exists
:select
p.project_id,
p.name,
p.stories_produced,
p.on_date,
from project_prod p
where
on_date in ('2017-03-01', '2017-06-10')
and not exists (
select 1
from project_prod p1
where
p1.on_date in ('2017-03-01', '2017-06-10')
and p1.on_date <> p.date
and p1.id = p.id
and p1.stories_produced <> p.stories_produced
)
order by project_id
not exists
: