最近的報表中有個需求,用戶需要看到屬於某個客戶的Order的所有的Items,這些屬於某個Order的Items需要歸並為一個字段記錄。
首先是對兩個表的描述,一個是OrderHead,一個是OrderDetails,一個客戶(DEBTOR)有多個Order,一個Order有一個或多個Item。
OrderHead表與OrderDetails表通過Order_No進行關聯。
OrderHead表如下:
OrderDetails表如下:
用戶需要達到的效果如下圖:
我們的MS SQL語句如下:
SELECT oh.ORDER_NO,
( SELECT od.ITEM + ' , ' FROM orderdetail od
WHERE ((ITEM <> N ' /C ') AND (ITEM <> N ' /F ')) -- 此處我們加入了其它篩選條件以進一步過濾不符合要求的Items記錄
AND od.ORDER_NO =oh.ORDER_NO FOR XML PATH( '')) AS ITEMS
FROM orderhead AS oh
( SELECT od.ITEM + ' , ' FROM orderdetail od
WHERE ((ITEM <> N ' /C ') AND (ITEM <> N ' /F ')) -- 此處我們加入了其它篩選條件以進一步過濾不符合要求的Items記錄
AND od.ORDER_NO =oh.ORDER_NO FOR XML PATH( '')) AS ITEMS
FROM orderhead AS oh