PIVOT
を使用すると、静的/動的ピボットのいずれでも可能です。以下は、静的なピボットの例です:ダイナミックピボットため
create table #temp
(
[group] varchar(1),
createdate smalldatetime,
qty int
)
insert into #temp values ('A', '3/1/2012', 5)
insert into #temp values ('A', '2/1/2012', 1)
insert into #temp values ('A', '2/1/2012', 3)
insert into #temp values ('B', '2/1/2012', 4)
insert into #temp values ('A', '1/1/2012', 1)
select [group]
, total
, isnull([1/1/2012], 0) as '2012/1'
, isnull([2/1/2012], 0) as '2012/2'
, isnull([3/1/2012], 0) as '2012/3'
from
(
select t1.[group], t1.createdate, t1.qty, t2.total
from #temp t1
left join
(
select [group], sum(qty) as Total
from #temp
group by [group]
) t2
on t1.[group] = t2.[group]
) x
pivot
(
sum(qty)
for createdate in ([3/1/2012], [2/1/2012], [1/1/2012])
) p
order by [group]
drop table #temp
多くのリソースがあります
Pivots with Dynamic Columns in SQL Server 2005
Using SQL Server 2005/2008 Pivot on Unknown Number of Columns (Dynamic Pivot)
SO検索すると、あなたの答えの多くを提供しますダイナミックピボットも同様です。
はそれを達成するために参加しているが、はい、それは可能です。 [Joins SQL](http://www.w3schools.com/sql/sql_join_inner.asp)を読んでください。 –
はピボットが必要なように見えますが、アプリケーション側ではなくサーバ側で行うのはなぜですか? – Taryn
ここで完全な答えを書く時間はありませんが、SQL Serverを使用している場合、解決策はDynamic SQL Pivotです。ここに素晴らしい例があります:http://stackoverflow.com/a/7182489/570191 –