1

クエリから以下の表に示すような出力が得られます

ここに画像の説明を入力

次の表のような出力が必要です

ここに画像の説明を入力

複数の行の共通フィールドを 1 つのセルに結合します。

これを行うためのクエリを作成するにはどうすればよいですか?

4

2 に答える 2

1

何をしようとしているのかは明確ではありませんが、これにより、コード列と値列のアイテムが単一の行に配置されます。

select distinct id,
  stuff((select ', ' + code
        from yourtable t2
        where t1.id = t2.id
        for XML path('')),1,1,'')  code,
  stuff((select ', ' + cast(value as varchar(10))
        from yourtable t2
        where t1.id = t2.id
        for XML path('')),1,1,'')  value
from yourtable t1

デモで SQL Fiddle を参照してください

于 2012-10-10T12:16:42.163 に答える
1

通常、このタイプの書式設定は、プレゼンテーション レイヤーまたはレポート ツールで行うのにより適していますが、T-SQL で同様のことを行う 1 つの方法を次に示します。

select
    case when rownumber = 1 then cast(id as varchar(11)) else '' end as id
  , code
  , value
from (
  select
      *
    , id as idsort
    , row_number() over (partition by id order by code) as rownumber
  from yourtable
) as a
order by idsort, rownumber

繰り返しますが、これは html テーブルなどのようには表示されず、すべての種類の書式設定および配置オプションがありません。

フィドルを設定してくれた @bluefeet に感謝します。

于 2012-10-10T14:37:28.610 に答える