[英]What join columns should I take for ACDOCA and JVSO1 SAP tables?
我已將兩個 SAP ERP 表提取到 Azure Synapse 中: ACDOCA
和JVSO1
。
現在我需要加入這兩個表。 並且列EBELN
需要處於連接狀態,而且兩個表都有大約 40% 的EBELN
空的。 由於這些空值,這兩個表會產生大量數據(單位:十億)。
我嘗試了什么:我又選擇了一列EBELP
並根據這兩列加入了兩個表:
WHERE ACDOCA.EBELN = JVSO1.EBELN AND ACDOCA.EBELP = JVSO1.EBELP
但即使在這種情況下,我也會得到很多數據。
我想要的是:
我想加入這兩個表並擁有更少的數據量(不是十億)。 您能否建議我在兩個表中添加更多列,以便我可以使用較少的數據正確連接兩個表。
謝謝
on acdoca.ebeln=JVSO1.ebeln and acdoca.ebelp=JVSO1.ebelp
on acdoca.ebeln=JVSO1.ebeln
連接條件將為具有 null 值的行提供相同的結果。 我用示例數據重現了這一點。
具有 null 個值的輸入數據:
埃伯恩 | EBELP |
---|---|
null | A |
AA | AA |
null | 乙 |
基於 ebeln 字段連接表:
select * from acdoca full outer join JVSO1 on
acdoca.ebeln=JVSO1.ebeln
基於 ebeln 和 ebelp 字段連接表:
select * from acdoca full outer join JVSO1 on
acdoca.ebeln=JVSO1.ebeln and acdoca.ebelp=JVSO1.ebelp
ebeln
字段為 null,就應該以這種方式編寫查詢,條件應該是匹配的ebelp
字段JOIN 表應該發生。select * from acdoca full outer join JVSO1
on
(acdoca.ebeln is not null and acdoca.ebeln=JVSO1.ebeln)
or
(acdoca.ebeln is null and acdoca.ebelp=JVSO1.ebelp)
或者
select * from acdoca full outer join JVSO1 on
(isnull(acdoca.ebeln,acdoca.ebelp) =
isnull(JVSO1.ebeln,JVSO1.ebelp))
即使您添加其他匹配列,加入條件也應該像上面的查詢一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.