数据表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
)
--如果数据类型对不上转化一下就行了
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答1.2k 阅读✓ 已解决
2 回答2k 阅读
SELECT * FROM
Buy
WHERE id not in(SELECT id where department != 'sell' and ? > time > ?) where ? > time > ? and department = 'sell';