クエリから以下の表に示すような出力が得られます
次の表のような出力が必要です
複数の行の共通フィールドを 1 つのセルに結合します。
これを行うためのクエリを作成するにはどうすればよいですか?
クエリから以下の表に示すような出力が得られます
次の表のような出力が必要です
複数の行の共通フィールドを 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 を参照してください
通常、このタイプの書式設定は、プレゼンテーション レイヤーまたはレポート ツールで行うのにより適していますが、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 に感謝します。