情况:有三个字段,companyid,goodsid,year,一个companyid有多个goodsid,帮我写一段SQL,找出companyid中的goodsid在2023年有记录,2022没有记录
时间: 2023-04-09 08:01:29 浏览: 106
SELECT DISTINCT companyid FROM table_name WHERE goodsid IN (SELECT goodsid FROM table_name WHERE year = 2023) AND companyid NOT IN (SELECT companyid FROM table_name WHERE year = 2022)
相关问题
现在有一下需求,请给我SQL代码,有companyid,name,year,sf,四列;如果companyid在2023和2022年都有的话,则2023年的数据sf返回是,否则返回否
SELECT companyid, name, year,
CASE
WHEN companyid IN (SELECT companyid FROM table WHERE year = 2022) AND year = 2023 THEN '是'
ELSE '否'
END AS sf
FROM table
SQL语句对比一个表中的数据中相同userid下的CompanyId和OfficeId列,在另外一个表中同一个userid不匹配的数据都有那些
您可以尝试使用以下 SQL 语句来比较两个表中同一个 UserID 下的 CompanyId 和 OfficeId 列是否匹配:
```
SELECT t1.UserID, t1.CompanyId, t1.OfficeId, t2.CompanyId, t2.OfficeId
FROM Table1 t1
LEFT JOIN Table2 t2 ON t1.UserID = t2.UserID
WHERE t1.CompanyId <> t2.CompanyId OR t1.OfficeId <> t2.OfficeId;
```
这个 SQL 语句会返回所有在 Table1 中与 Table2 不匹配的 UserID、CompanyId 和 OfficeId 列的数据。请注意,这个 SQL 语句并没有去重,如果同一个 UserID 下有多个不匹配的数据,它们会全部被返回。如果您只想查找每个 UserID 下的第一条不匹配的数据,可以使用 GROUP BY 语句对 UserID 进行分组,或者使用子查询来实现。
阅读全文