sql - 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);
解决方案
我认为不需要完全连接(使用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)
推荐阅读
- maven - TestNg - 通过 mvn 命令行排除一个类(testrunner)
- python - 如何从python中的单个类继承一个类的多个实例
- c# - 我可以减少这些代码行吗? 使双键按下以在两个 if/else if 选项之间切换
- javascript - 过滤具有多个startWith和endsWith参数的数组
- php - 来自swift的JSON请求在php中显示空数组
- pandas - 在具有 MultiIndex 的 pandas 数据框中,如何使用组均值有条件地填充缺失值?
- python - Pandas apply() 在多处理中具有多个参数
- firefox - 如何使 Firefox 配置文件文件夹中的数据可用于扩展
- typescript - 将泛型与索引类型相结合
- javascript - 检查对象数组中的值匹配