gpt4 book ai didi

sql - 查找表中的唯一记录,该记录在另一个表中的特定日期之后不重复

转载 作者:行者123 更新时间:2023-12-03 02:26:48 25 4
gpt4 key购买 nike

我是 SQL 初学者,正在尝试解决问题。
我的数据库中有两个表,公司发票,如下所示

公司表

id          name          active   
1 company A True
2 company B True
3 company C True
4 company D True
5 company E True

发票表

id            date            companyid
1 18/01/2018 4
2 06/05/2014 1
3 04/03/2017 4
4 25/05/2016 3
5 17/04/2018 2
6 10/11/2017 3

我想要获取公司唯一值的列表,并将“事件”列值更改为 False 如果公司在 2017 年 1 月 1 日之后没有任何发票。这样一来,A公司和E公司的事件栏应该改为False。期望的结果是这样的:

id          name          active   
1 company A False
2 company B True
3 company C True
4 company D True
5 company E False

我已经尝试过,但这只是一半,我无法找出解决方案的其余部分:

select distinct A.* from company A
inner join invoice B
on B.companyid = A.id
where B.date < '20170101'

最佳答案

使用子查询和聚合的用例

select id, name, case when mdate>'20170101' then 'Active' else 'False' end as Active
from
(
select A.id,A.name,max(date) mdate from company A
left join invoice B
on B.companyid = A.id
group by A.id,A.name)a

关于sql - 查找表中的唯一记录,该记录在另一个表中的特定日期之后不重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52438346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com