如何解决PL / SQL-Oracle 9i
| 我们有一个餐桌客户和餐桌车。 客户表定义为:客户编号,交易编号 汽车表定义为:交易编号,汽车型号# 汽车型号可以是日产,丰田或本田。 我们需要找出的是有多少不同的客户购买了本田而不是日产。汽车型号可能有多个记录,因为客户可以购买2-3本田或日产。 交易编号是汽车表中的主键。 这样做最经济有效的方法是什么?解决方法
尝试这个:
SELECT COUNT(DISTINCT cust#)
FROM customer a,car b
WHERE a.transaction# = b.transaction#
AND b.model# = \'HONDA\'
AND NOT EXISTS
(
SELECT 1
FROM customer c,car d
WHERE c.transaction# = d.transaction#
AND d.model# = \'NISSAN\'
AND c.cust# = a.cust#
)
, SELECT COUNT(DISTINCT cust.CUST#) AS COUNT FROM CUSTOMER cust INNER JOIN CAR car ON
cust.TRANS#=car.TRANS# WHERE CAR_MODEL#=\'HONDA\'
AND NOT EXISTS
(SELECT COUNT(1) FROM CUSTOMER inner_cust INNER JOIN CAR inner_car ON
inner_cust.TRANS#=inner_car.TRANS#
AND inner_cust.CUST#=inner_car.CUST# WHERE inner_car.CAR_MODEL#=\'NISSAN\')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。