首页 > 解决方案 > SQL 嵌套连接显示每个产品的当前价格并使用 MAX()

问题描述

目前每种产品的价格是多少?显示产品代码、产品描述、单位及其当前价格。提示:您将使用 MAX()。这是一个嵌套连接。

产品表

产品代码

描述

单元

价格历史

有效日期

产品代码

单价

有人可以帮我改进我的脚本吗?

这是我的脚本,我正在使用 ibm.cloud

SELECT p.prodCode, p.description, p.unit, MAX(ph.unitPrice) "Current Price"
FROM product p 
FULL  JOIN  priceHist ph
ON   p.prodCode = ph.prodCode
GROUP BY p.prodCode, p.description, p.unit 
ORDER BY MAX (ph.unitPrice);

标签: sqljoingroup-bydb2ibm-cloud

解决方案


我认为不需要完全连接(使用left join),您可以使用以下where子句:

SELECT p.prodCode, p.description, p.unit, coalesce(ph.unitPrice,p.unitprice)  "Current Price"
FROM product p 
Left JOIN  priceHist ph ON p.prodCode = ph.prodCode
WHERE ph.prodcode is null
   or ph.date_col = (select max(phh.date_col) from pricehist phh on phh.prodcode = ph.prodcode)

推荐阅读