数据表Buy,属性分别是产品product,部门department,时间time,那么“ 2014年销售部购买但是其他部门没有购买的产品 ”sql语句怎么写,我思考了半天,实在是想不出来。
数据表Buy,属性分别是产品product,部门department,时间time,那么“ 2014年销售部购买但是其他部门没有购买的产品 ”sql语句怎么写,我思考了半天,实在是想不出来。
select distinct product from buy where department = '销售部' and left(convert(varchar(10),time,120),4) = '2014' and
not exists(select distinct product from where department != '销售部' and left(convert(varchar(10),time,120),4) = '2014')
这个是sql server的写法,不确定mysql是不是一样的语法,如果上面的函数用法不一样,百度一下就可以了
--你没有表明部门department是什么类型,我这里默认为int型,销售部department=5
SELECT DISTINCT product FROM [Buy]
WHERE department=5 AND time=2018 AND Title NOT IN
(
SELECT DISTINCT product FROM [Buy] WHERE department<>5 AND time=2018
)
--如果数据类型对不上转化一下就行了
1 回答2.5k 阅读✓ 已解决
5 回答1.5k 阅读
2 回答2.2k 阅读
3 回答757 阅读✓ 已解决
1 回答1k 阅读
1 回答691 阅读✓ 已解决
1 回答992 阅读
SELECT * FROM
Buy
WHERE id not in(SELECT id where department != 'sell' and ? > time > ?) where ? > time > ? and department = 'sell';