-3

こんにちはみんな私は学校でこの問題を抱えています:

clientProjectDetail次の列があるというテーブルがあります

Clientid, ClientName, ProjectName

Corpデータベース内。

各クライアントは、1つ以上のプロジェクトにアクセスできます。ProjectNamesの横にある複数Clientnamesを単一のコンマ区切りリストとして返すSQLクエリを記述します。私はこれが数時間それであったことを本当に理解することができません...いくつかの洞察を共有することができた誰かに感謝します

4

2 に答える 2

1

次のようなものを使用できるはずです。

SELECT distinct c1.Clientid, 
  c1.ClientName,
  LEFT(projects , LEN(projects)-1) projects 
FROM clientProjectDetail c1
CROSS APPLY
(
  SELECT c2.ProjectName + ', '
  FROM clientProjectDetail c2
  where c1.Clientid = c2.Clientid
  FOR XML PATH('')
) m (projects)

SQL FiddlewithDemoを参照してください

于 2013-02-13T16:58:29.093 に答える
1

このクエリを試してみてください: (STUFF は最初のカンマを削除し、FOR XML PATH('') はテキストを 1 行に連結するのに役立ちます)

SELECT Clients.ClientName, 
       Projects = STUFF(
             (
                SELECT ', ' + clientProjectDetail.ProjectName
                FROM clientProjectDetail 
                WHERE clientProjectDetail.Clientid = Clients.Clientid
                FOR XML PATH('')
              ), 1, 2, '')
FROM clientProjectDetail AS Clients
于 2013-02-13T17:04:30.897 に答える