次の要件のための単純なSQLスクリプトが必要です。また、将来的にデータが増加する可能性があり、静的ではありません。だから私は動的なクエリが必要です。誰かがこれで私を助けてください。すべての子値を、1つの行に、親IDが同じで区切って表示
私はこの
のようなデータを持っており、出力は次のようにする必要があります。
次の要件のための単純なSQLスクリプトが必要です。また、将来的にデータが増加する可能性があり、静的ではありません。だから私は動的なクエリが必要です。誰かがこれで私を助けてください。すべての子値を、1つの行に、親IDが同じで区切って表示
私はこの
のようなデータを持っており、出力は次のようにする必要があります。
;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
MSSQLサーバーにスタッフを()を使用して、これを試してみてMySQLとSQL Serverは非常に異なる方法で、この特定の問題を解決する非常に異なるデータベースエンジンです。あなたはどちらを使っていますか?また、テキストではなく、サンプルデータと出力のリンクや画像を投稿するのは非常に失礼だと考えられます。誰もあなたの画像を見ることができないので、答えが出にくくなります。最後に、あなたがやって欲しいのは、リレーショナルデータベースの貧弱な習慣とみなされます。リレーショナルデータベースはレコードを扱う。アプリケーションは、必要なときにcsvデータをロールアップできます。 –
ヘイジョエル、あなたの返事をありがとう。まず私はSQLを使用しています。私はSQLコードが必要です。イメージを登録すると、私はここに質問を投稿するのがかなり新しいです。データを表形式で表示する方法がわかりません。それで私はイメージを使用しました。 – Akhil
** ** Sql? 2つ以上の方言があり、あなたの質問に対する答えは、必要な方言に大きく依存します(My SQLはSql Server 2008以降でStuff()を使用できる間にgroup_concat()を使用します)。データのために...あなたのベストを尽くしてください。フォーマットを編集する手助けができますが、イメージはこのコンテキストでは常に**悪化します。 –