簡體   English   中英

我應該為 ACDOCA 和 JVSO1 SAP 表采用哪些連接列?

[英]What join columns should I take for ACDOCA and JVSO1 SAP tables?

我已將兩個 SAP ERP 表提取到 Azure Synapse 中: ACDOCAJVSO1

現在我需要加入這兩個表。 並且列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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM