2014-07-15 67 views
0

我試圖獲得由'createdate'排序的不同'productnumber',但最後我只需要'productnumber'按'createdate'排序(我不能使用top作爲'productnumber'在廣泛的靈活範圍內變化)。在子查詢中使用distinct和order

需要將不同的產品編號與逗號(,)串聯起來, 123245787875(每個數字代表一個productnumber)

所需的查詢看起來有點(此查詢不起作用,並且給出錯誤ORDER BY子句是在視圖中,內聯函數,派生表,子查詢無效,和公用表表達式,除非TOP,OFFSET或FOR XML也被指定):

SELECT stuff(
(
SELECT distinct ',' + productnumber 
FROM Product 
ORDER BY createdate 
FOR XML path('') 
)), 1, 1, '') 

任何人都可以幫助如何獲得理想的結果。

+0

如果'productate'的重複值對'createdate'有不同的值,你應該點什麼'createdate'? –

+0

好抓住!您可能會認爲同一個產品編號有多個條目。我更關心正確的方式來做到這一點。 – user3725094

+0

一種方法是按產品編號進行分組,並按min(orderate)排序。但是隻有你可以知道這是你想要的。 –

回答

-2
SELECT stuff((SELECT  ',' + productnumber 
    FROM product a 
    ORDER BY a.createdate FOR xml path('')),1,1,'') 
    AS destn_str 
+0

我錯過了大括號,同時把查詢放在這裏。這是行不通的。 – user3725094

+3

這可能會回答這個問題,但如果您嘗試解釋您的答案,這將有所幫助。就像現在這樣,這篇文章是在低質量隊列中。 – Brian