【发布时间】:2019-01-14 11:48:47
【问题描述】:
我只使用 Toad/Oracle 几个星期,所以仍在学习编码等我了解 Access 中的 SQL 代码,现在正在尝试学习 Oracle。
我需要从 tbl BIC/AZUCDMO0100 返回 UCMRBILDAT 的最大日期,但只能从链接的 tbl LH_DAT 中包含的合同中返回
我也尝试过使用 MAX UCMRBILDAT,但这没有用。
UCMRBILDAT (/BIC/AZUCDMO0100)
UC_MRESULT (/BIC/AZUCDMO0100)
UC_MRSTAT (/BIC/AZUCDMO0100
UC_MRCAT (/BIC/AZUCDMO0100)
CONTRACT_NUMBER (LH_DAT)
UC_MR_NUMB (/BIC/AZUCDMO0100) + (/BIC/AZUCDMO0200)
SELECT UCMRBILDAT,
UC_MRESULT,
UC_MRSTAT,
UC_MRCAT
FROM LH_DAT
( SELECT CONTRACT_NUMBER, MAX (UCMRBILDAT) MXBD
FROM SAPSR3."/BIC/AZUCDMO0100"
GROUP BY CONTRACT_NUMBER) GMR
LEFT OUTER JOIN SAPSR3."/BIC/AZUCDMO0200"
ON (CONTRACT_NUMBER = UCCONTRACT)
INNER JOIN SAPSR3."/BIC/AZUCDMO0100"
ON ("/BIC/AZUCDMO0200".UC_MR_NUMB = "/BIC/AZUCDMO0100".UC_MR_NUMB)
WHERE CONTRACT_NUMBER = '2000014420'
AND UCMRBILDAT = MXBD
AND MR.CONTRACT_NUMBER = GMR.CONTRACT_NUMBER
来自 BIC/AZUCDMO0100 的最大账单日期,但仅适用于表 LH_DAT 中包含的合同
编辑需要 UCMRBILDAT 的最大日期在下面的脚本
SELECT CONTRACT_NUMBER,
UCMRBILDAT,
UC_MRESULT,
UC_MRCAT
FROM LH_DAT
LEFT OUTER JOIN SAPSR3."/BIC/AZUCDMO0200"
ON (CONTRACT_NUMBER = UCCONTRACT)
INNER JOIN SAPSR3."/BIC/AZUCDMO0100"
ON ("/BIC/AZUCDMO0200".UC_MR_NUMB = "/BIC/AZUCDMO0100".UC_MR_NUMB)
WHERE CONTRACT_NUMBER = '2000014420'
AND "/BIC/AZUCDMO0200".SOURSYSTEM = 'SP'
AND "/BIC/AZUCDMO0200".UCDELE_IND <> 'X'
【问题讨论】:
-
不清楚,你真正想要什么。您说您想从表“BIC/AZUCDMO0100”中选择最大 UCMRBILDAT,但在您的查询中您选择了 LH_DAT 行。那你想要哪个?请描述你的桌子。它们的键是什么,它们有什么关系? (顺便说一下,您的查询无效,因为
FROM LH_DAT (...)不是有效的 SQL。) -
如果您想显示最大 UCMRBILDAT,您是想显示每份合约的最大 UCMRBILDAT 还是最大 UCMRBILDAT?顺便说一句,如果您显示示例数据和预期结果,这将有所帮助,因此我们会看到您希望从哪个表中选择哪些列。
-
你的列名真的像
/BIC/AZUCDMO0100吗? -
抱歉,我是 Oracle 和 Stack 的新手。
-
有 3 个表 LH_DAT(包含合同号)链接到合同号上的表 '/BIC/AZUCDMO0200',然后这个 **0200 链接到'/BIC/AZUCDMO0100' 上的' UC_MR_NUMB'。