我使用4臺獲得許多送貨地址一個訂單號
- 客戶
- CUSTOMER_ORDER
- CUST_ORDER_LINE
- CUST_ADDRESS
我使用內部連接到鏈接表。 CUSTOMER
通過customer_ID鏈接到CUSTOMER_ORDER
和CUST_ADDRESS
,並且CUSTOMER_ORDER_LINE
通過order_ID鏈接到CUSTOMER_ORDER
。 Order_ID不出現在CUSTOMER
或CUST_ADDRESS
表中。
當我運行下面的查詢時,我得到了該特定客戶和訂單編號的所有送貨地址。
例如,經銷商有25個可能的送貨地址,但他們一次只能將一個訂單發送到一個送貨地址。我的查詢是爲每個地址帶回一個訂單號碼25次。任何建議都會很棒。謝謝。
SELECT DISTINCT TOP (100) PERCENT dbo.CUSTOMER_ORDER.ID,
dbo.CUSTOMER.NAME,
dbo.CUST_ORDER_LINE.PART_ID,
dbo.CUST_ORDER_LINE.ORDER_QTY,
dbo.CUSTOMER_ORDER.STATUS,
dbo.CUSTOMER_ORDER.SHIPTO_ID,
dbo.CUST_ADDRESS.NAME AS Expr1
FROM dbo.CUSTOMER
INNER JOIN dbo.CUSTOMER_ORDER
ON dbo.CUSTOMER.ID = dbo.CUSTOMER_ORDER.CUSTOMER_ID
INNER JOIN dbo.CUST_ORDER_LINE
ON dbo.CUSTOMER_ORDER.ID = dbo.CUST_ORDER_LINE.CUST_ORDER_ID
INNER JOIN dbo.CUST_ADDRESS
ON dbo.CUSTOMER.ID = dbo.CUST_ADDRESS.CUSTOMER_ID
WHERE (dbo.CUSTOMER_ORDER.ORDER_DATE > '1/1/2014')
AND (dbo.CUSTOMER_ORDER.ID NOT LIKE 'RMA%')
GROUP BY dbo.CUSTOMER_ORDER.ID,
dbo.CUSTOMER.NAME,
dbo.CUST_ORDER_LINE.PART_ID,
dbo.CUST_ORDER_LINE.ORDER_QTY,
dbo.CUSTOMER_ORDER.STATUS,
dbo.CUSTOMER_ORDER.SHIPTO_ID,
dbo.CUST_ADDRESS.NAME
ORDER BY dbo.CUSTOMER_ORDER.ID
如果客戶有25個地址可以發貨,我怎麼知道某個訂單應該發往哪個地址? – Becuzz 2015-01-15 18:07:10
每個地址都有一個shipto_ID,每個分銷商都有一個客戶編號。兩者的結合是獨一無二的。有時訂單會直接發送給經銷商,否則將直接發貨給最終客戶。我們的主級分銷商可能有超過1,000個地址。在我們的ERP軟件中,到達和發貨地址的賬單在訂單輸入屏幕上並鏈接到訂單號。 – Ian 2015-01-15 18:17:15
那麼你可以根據訂單shipto_id字段加入地址表嗎?另外,你爲什麼要做一個小組?似乎沒有需要(或者我只是想念一些東西)。 – Becuzz 2015-01-15 18:27:50