问题描述
可以使用相关子查询exists,例如:
select *
from t
where exists (
select * from t t2
where t2.column1 = t.column1
group by column1
having Sum(amount1) > (Sum(amount2) + 100)
);
解决方法
谢谢您的帮助。
你能帮我创建一个 SQL 语句,它显示如果 amount1 ($500 +$300) >amount2 ($400 +200) 乘以 100,然后列出两行的结果。我知道我需要将第 1 列按 1001 和 1002 分组,但无法想出其余的 :-( 因为第 1 列的 1002 仅大 50 (100 - 50),所以不应该出现在结果中。
第 1 列 | 第 2 列 | 金额1 | 金额2 | 顾客 |
---|---|---|---|---|
1001 | 1 | 500 美元 | 400 美元 | 美国广播公司 |
1001 | 2 | 300 美元 | 200 美元 | 美国广播公司 |
1002 | 1 | 100 美元 | 50 美元 | CBX |
结果应该是:
第 1 列 | 第 2 列 | 金额1 | 金额2 | 顾客 |
---|---|---|---|---|
1001 | 1 | 500 美元 | 400 美元 | 美国广播公司 |
1001 | 2 | 300 美元 | 200 美元 | 美国广播公司 |