gpt4 book ai didi

mysql - SQL Max函数检索一条记录与其他表中的相关字段

转载 作者:行者123 更新时间:2023-11-29 19:16:05 24 4
gpt4 key购买 nike

在我们的查询工具(使用 ODBC)4.1 中我正在尝试获取最大 Inv_shipment_date 和相应的 inv_billed_weight、product_ID 和 Division_CD。我有 4 个表,我必须从中获取数据(必须使用 1 个表来连接另一个表)。我在编写 SQL 来将结果缩小到显示最大发货日期的一行时遇到困难。

表格和所需字段:

FOS:包 key 库存_装运_日期库存_计费_重量分区键

FIF:包 key 产品 key

PD:产品 key 产品ID

DD:部门_键部门_CD

我希望在表格中得到最终结果最大(inv_shipment_date)库存_计费_重量产品ID部门_CD

我写的结果是空白数据(通过查看数据我知道最大发货日期实际上是20170112,计费重量是20,部门是DOL,产品ID是03-01984-001)

我做错了什么?感谢您的帮助 smile.gif

SELECT 
max(fos.inv_shipment_date_key),
dd.division_cd,
pd.product_id,
max(fos.inv_billed_weight)


FROM DCDM.FREIGHT_OUT_SUMMARY fos,
(select max(inv_shipment_date_key) as Maxinvdate, inv_billed_weight
from dcdm.freight_out_summary
group by inv_billed_weight) maxdate,
dcdm.division_dim dd,
dcdm.product_dim pd,
dcdm.freight_invoice_fact fif

where fos.inv_billed_weight = maxdate.inv_billed_weight
and fos.inv_shipment_date_key = maxdate.maxinvdate
and fos.package_key = fif.package_key
and fif.product_key = pd.product_key
and fos.division_key = dd.division_key
and pd.product_id = '03-01984-001'

group by
fos.inv_shipment_date_key,
dd.division_cd,
pd.product_id,
fos.inv_billed_weight

最佳答案

如果我正确理解你的问题,你就会需要这样的人。如果删除最后一行的 AND 条件,您将获得所有产品 ID 的结果。我建议您删除最后一个 AND 条件,然后运行它以查看是否获得所需的结果。但没有样本数据,真的很难猜测。

SELECT *
FROM
(SELECT Package_key,
Inv_Billed_Weight,
Division_Key,
row_Number() over (partition BY Division_Key
ORDER BY Inv_Shipment_Date DESC) AS rn
FROM DCDM.FREIGHT_OUT_SUMMARY) fos
INNER JOIN dcdm.division_dim dd
ON fos.division_key = dd.division_key
INNER JOIN dcdm.freight_invoice_fact fif
ON fos.package_key = fif.package_key
INNER JOIN dcdm.product_dim pd
ON fif.product_key = pd.product_key
WHERE fos.rn=1
AND pd.product_id = '03-01984-001'

关于mysql - SQL Max函数检索一条记录与其他表中的相关字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42702382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com