我使用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