2017-02-24 80 views
0

我正在撰寫包含銷售訂單信息+交貨單的報表。我想要做的是從採購訂單(例如PO#& Price)表中添加信息(我相信這是OPOR)。我如何將此錶鏈接到我已有的一個或多個表格?請參閱下面的查詢:將採購訂單與銷售訂單鏈接的查詢

SELECT o0.NumAtCard AS OrderNo 
,i0.DocNum 
,i0.TrackNo AS TrackingNo 
,i0.CardName 
, o0.DocNum AS DelivDoc 
FROM ODLN d0 
INNER JOIN DLN1 d1 ON d0.DocEntry = d1.DocEntry 
LEFT OUTER JOIN INV1 i1 ON d1.TrgetEntry = i1.DocEntry 
LEFT OUTER JOIN OINV i0 ON i1.DocEntry = i0.DocEntry 
INNER JOIN ORDR o0 ON d1.BaseEntry = o0.DocEntry 
INNER JOIN OITM itm ON i1.ItemCode = itm.ItemCode 
WHERE o0.CANCELED = 'N' AND 
i0.TrackNo IS NOT NULL 
GROUP BY o0.NumAtCard 
|,i0.DocNum 
|,i0.TrackNo 
,i0.CardName 
,o0.DocNum 
ORDER BY o0.NumAtCard 
+0

你想在表格中輸入什麼樣的信息?它如何加入? –

+0

我想在報告中添加採購訂單號和價格 – vnguyen

+0

在ORDR表中是否存在或除此之外?另外,如果您有4個ORDR條目和3個採購訂單,您預計會有多少行? 12? –

回答

0

好吧,來回,很明顯真正的問題是如何去添加信息到查詢。

一個SQL包括幾個主要部分依次是:

  1. 列列表
  2. 表/加入規範(FROM和JOIN子句)
  3. 的地方節(...)
  4. 總規則(GROUP BY /有)
  5. 限制和偏移(LIMIT/OFFSET)

在你的情況下,你需要從識別你想要添加的數據庫中的信息開始,以及它與你已有的信息的關係。因此,在這種情況下,你會:

  1. 根據需要添加的列列列表(SELECTFROM之間的部分)
  2. 的表添加到加入列表(通過LEFT JOIN,與加盟條件跟在ON之後)。因此,如果您有一個與銷售訂單文檔字段匹配的so_docnum字段,它將類似LEFT OUTER JOIN OPOR po ON po.so_docnum = o0.docnum
  3. GROUP BY子句添加所需的任何內容(可能是您從PO添加的字段)。

但是,您的第一步是映射出數據,以便可以執行這些步驟,因爲很明顯,您尚未擁有添加所需的所有信息。