8

私はこのようなテーブルを持っています

ID  NAME    Amount
1   cal     100
2   cal     200
3   cal     300
4   cal     400
1   ser     500
2   ser     600
5   ser     700

このような結果が得られるように、selectクエリを記述したい

ID  NAME            Amount
1   cal and ser     600
2   cal and ser     800
3   cal             300
4   cal             400
5   ser             700

ここでは、IDと金額の合計でグループ化し、同じIDと異なるネット名で文字列名を連結する必要があります

4

2 に答える 2

8

これはsql-server2008で動作します

SELECT p1.ID,
       ( SELECT NAME + ' and ' 
           FROM YourTable  p2
          WHERE p2.ID = p1.ID
          ORDER BY NAME
            FOR XML PATH('') ) AS Name,
        sum(Amount)
      FROM YourTable p1
      GROUP BY ID ;
于 2012-04-10T06:13:16.770 に答える
2
SELECT p1.ID,  
   STUFF(( SELECT ' and ' + NAME  
       FROM YourTable  p2  
      WHERE p2.ID = p1.ID  
      ORDER BY NAME  
        FOR XML PATH('') )  
    , 1, 5, '' ) AS Name,  
    sum(Amount)  
  FROM YourTable p1  
  GROUP BY ID  

Vikramの回答から結果
に追加します。

于 2013-04-30T02:54:19.817 に答える