2017-08-29 33 views
-1

我想要一個簡單的SQL腳本,以滿足以下要求。數據可能會在未來增加,並且不是靜態的。所以我需要動態查詢。有人請幫助我。在單行顯示所有的子值,分開,它有相同的父母ID

我有這樣

input

數據和輸出應該是這樣的。

output

+1

MySQL和SQL數據庫是非常不同的數據庫引擎,將在非常不同的方式解決這個特定的問題。你在使用哪一個?此外,這裏發佈的鏈接或圖片的樣本數據和輸出,而不是文本,這是非常粗魯的。這也使得你不太可能得到答案,因爲不是每個人都會看到你的圖像。最後,你要求做的事情被認爲是關係數據庫的糟糕做法。關係數據庫處理記錄;應用程序可以在需要時彙總csv數據。 –

+0

嘿喬爾,謝謝你的回覆。首先我使用SQL。我需要SQL代碼。並註冊圖片,我很新的發佈問題在這裏。我不知道如何以表格格式顯示我的數據。因此我使用了這些圖像。 – Akhil

+0

**哪個** Sql?有不止一種方言,你的問題的答案很大程度上取決於你需要哪種方言(MySql使用group_concat(),而Sql Server 2008和更高版本可以使用Stuff())。對於數據...盡力而爲。我們可以幫助編輯格式,但在這種情況下圖像總是**更差。 –

回答

0

試試這個使用的東西()在MSSQL服務器

;With cte(ParentId, ChidId) 
    AS 
    (
    SELECT 1,'a'  UNION ALL 
    SELECT 1,'b'  UNION ALL 
    SELECT 1,'123' UNION ALL 
    SELECT 2,'asd' UNION ALL 
    SELECT 2,'222' UNION ALL 
    SELECT 3,'kk' UNION ALL 
    SELECT 3,'ffh' UNION ALL 
    SELECT 4,'aaa' UNION ALL 
    SELECT 5,'fdhgf' UNION ALL 
    SELECT 5,'fdddv' 
    ) 
    SELECT parentid, 
      Stuff((SELECT DISTINCT ', ' + chidid 
        FROM cte i 
        WHERE i.parentid = o.parentid 
        FOR xml path ('')), 1, 1, '') AS ChidId 
    FROM cte o 
    GROUP BY parentid 
+0

感謝您的回覆@ Srini131。但我的數據是動態的。 – Akhil

+0

您是否將數據保存在物理表格中?如果是這樣用您的物理表名稱替換Cte查詢將工作 – 2017-08-29 13:26:40

+0

謝謝@ Srini131。得到它了 – Akhil

相關問題