簡體   English   中英

多個外部聯接

[英]Multiple OUTER JOIN

我真的對訪問及其怪異的SQL語法感到厭倦,我瀏覽了google和StackOverflow,發現了提示,但是我無法設法使我的大查詢正常工作...我只是有多個左外部聯接,我可以不會在括號內進行安排,以使它被該死的Access接受...

您能否給我提示我的加入有什么問題? 為什么訪問抱怨:“ JOIN SYNTAX錯誤”

真的提前謝謝你!

米洛德

SELECT ORDR.*, ITEM.*, ERAS.*, MAPP.New, KUMV.*
FROM ((GEN_ORDERS AS ORDR)
LEFT OUTER JOIN 
(    
(SELECT concat,ORDER_NUM, ConTY1 AS CT, ConValue1 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY2 AS CT, ConValue2 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY3 AS CT, ConValue3 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY4 AS CT, ConValue4 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY5 AS CT, ConValue5 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY6 AS CT, ConValue6 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY7 AS CT, ConValue7 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY8 AS CT, ConValue8 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY9 AS CT, ConValue9 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY10 AS CT, ConValue10 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY11 AS CT, ConValue11 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY12 AS CT, ConValue12 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY13 AS CT, ConValue13 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY14 AS CT, ConValue14 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY15 AS CT, ConValue15 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY16 AS CT, ConValue16 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY17 AS CT, ConValue17 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY18 AS CT, ConValue18 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY19 AS CT, ConValue19 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY20 AS CT, ConValue20 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY21 AS CT, ConValue21 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY22 AS CT, ConValue22 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY23 AS CT, ConValue23 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY24 AS CT, ConValue24 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY25 AS CT, ConValue25 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY26 AS CT, ConValue26 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY27 AS CT, ConValue27 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY28 AS CT, ConValue28 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY29 AS CT, ConValue29 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY30 AS CT, ConValue30 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY31 AS CT, ConValue31 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY32 AS CT, ConValue32 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY33 AS CT, ConValue33 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY34 AS CT, ConValue34 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY35 AS CT, ConValue35 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY36 AS CT, ConValue36 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY37 AS CT, ConValue37 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY38 AS CT, ConValue38 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY39 AS CT, ConValue39 AS CV FROM GEN_ITEMS UNION ALL
SELECT concat,ORDER_NUM, ConTY409 AS CT, ConValue40 AS CV FROM GEN_ITEMS) AS ITEM)
ON ORDR.ORDER_NUM = ITEM.ORDER_NUM
)
LEFT OUTER JOIN GEN_ERASALES AS ERAS ON ITEM.concat = ERAS.concat
LEFT OUTER JOIN MAPPING AS MAPP ON ITEM.CT = MAPP.Old
LEFT OUTER JOIN GEN_KUMV KUMV ON ERAS.DOCCOND = KUMV.KNUMV AND MAPP.New = KUMV.KSCHL

Access沒有左外部聯接,只有左聯接。 每個連接都需要括號,並且不能有AND:

SELECT ORDR.*, ITEM.*, ERAS.*, MAPP.New, KUMV.*
FROM (((GEN_ORDERS AS ORDR
LEFT  JOIN 

(.... Union ....) As Item
 ON ORDR.ORDER_NUM = ITEM.ORDER_NUM)


LEFT  JOIN GEN_ERASALES AS ERAS ON ITEM.concat = ERAS.concat)
LEFT  JOIN MAPPING AS MAPP ON ITEM.CT = MAPP.Old)
LEFT  JOIN GEN_KUMV KUMV ON ERAS.DOCCOND = KUMV.KNUMV 

您可能需要對AND MAPP.New = KUMV.KSCHL使用子查詢或WHERE,具體取決於您的需求。

編輯我應該補充一點,Access將在聯接中接受AND,但是在這種情況下,它將導致模棱兩可的外部聯接,因此必須進行一些重新排列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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