我正在尝试使用子查询来检索高于与特定惩罚数量相关联的金额的罚款数量和金额。我有一个有两列的表,一个paymentno(有一个惩罚)和一个金额。我只需要检索惩罚金额高于payno 4(50美元)金额的信息。我不确定如何测试这些信息,我需要使用子查询来完成。有谁看到我哪里出错了?谢谢!
select paymentno, amount
from penalties
where paymentno in (select paymentno
from penalties
where amount > 4);
答案 0 :(得分:1)
您的查询似乎混淆了两列。在我阅读问题时,您需要使用>
进行比较,而不是in
:
select paymentno, amount
from penalties
where amount > (select amount
from penalties
where paymentno = 4
);
如果每个amount
可能有多个paymentno
,那么您需要ALL
或聚合(我的首选方法):
select paymentno, amount
from penalties
where amount > (select max(amount)
from penalties
where paymentno = 4
);