有一个sql,排除干扰数据,结果集不显示干扰数据,详细下面解释

我的sql是这样写的 ,select * from data where date BETWEEN '2018-01-01'  AND '2018-01-10' and line_id in ('01','02','03') 

干扰数据,现在2018-01-05号的 1号线是干扰数据,我的改了sql如下

select * from data where date BETWEEN '2018-01-01'  AND '2018-01-10' and line_id in ('01','02','03')  

and (date not in ('2018-01-05') and line_id not in ('01'))

现在结果集整个01号线都不显示了,并且2018-01-05这一天02号线,03号线也不显示了,


我只想要她结果集排除掉,2018-01-05号的 1号线的数据,其他数据保留(比如2018-01-05的2号线,3号线,和其他时间内的1号线数据都保留)

lin1314 发布于 2020-6-28 10:37 (编辑于 2020-6-28 10:40)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
zsh331Lv8专家互助
发布于2021-1-13 14:38
SELECT
*
FROM
(
SELECT
*
FROM
DATA
WHERE
        date BETWEEN '2018-01-01' AND  '2018-01-10'
    AND line_id IN ('01', '02', '03')
) a
WHERE
date != '2018-01-05' or  line_id != '01'


  • Coldman Coldman 最后应该是:date != \'2018-01-05\' and line_id != \'01\'
    2021-01-14 17:29 
  • zsh331 zsh331 回复 Coldman 你确定?= =#
    2021-01-14 17:52 
最佳回答
0
snrtuemcLv8专家互助
发布于2020-6-28 10:41

select * from 

(select * from data where date BETWEEN '2018-01-01'  AND '2018-01-10' and line_id in ('01','02','03') )

where date not in ('2018-01-05') and line_id not in ('01')


  • lin1314 lin1314(提问者) 我试了,他还是把所有都过滤掉了
    2020-06-28 10:46 
  • snrtuemc snrtuemc 回复 lin1314(提问者) 检查下,当天是否有02和03号线数据
    2020-06-28 10:53 
最佳回答
0
就TM你叫夏洛啊Lv6中级互助
发布于2020-6-28 10:50
select * from 
(select * from data where date BETWEEN '2018-01-01'  AND '2018-01-10' and line_id in ('01','02','03')  
and  line_id not in (select line_id from data where data= '2018-01-01' and line_id = '01'))



最佳回答
0
luojian0323Lv7资深互助
发布于2020-6-28 12:59

数据表有ID吧.

select * from data where date BETWEEN '2018-01-01'  AND '2018-01-10' and line_id in ('01','02','03')  

and ID not in(select ID from data where date='2018-01-05' and line_id='01')

  • 5关注人数
  • 474浏览人数
  • 最后回答于:2021-1-13 14:38
    请选择关闭问题的原因
    确定 取消
    返回顶部