2017-01-06 10 views
-1

2つのテーブルがあります。私はクエリを書く。日付は動的です。私は任意の日付を選択することができます。 `sql server 2008複数の列と動的列のピボット

select a.MP,a.CP,a.Frequency,a.Time,CONVERT(varchar(12),b.date,101) as 
EntryDate,b.actualtime from mpcp a, DailyData b 
where a.UserID=1 and a.MpCpId=b.MpCpId and 
CONVERT(varchar(12),b.EntryDate,101) between 
CONVERT(varchar(12),GETDATE()-5,101) and 
CONVERT(varchar(12),GETDATE()+25,101)` 

出力

enter image description here

が、私はあなたの条件のための一つのデータを作成し、私は1つの一時テーブルと撮像データにあなたの結果を格納していますと仮定すると enter image description here

答えて

1

のような出力をしたいです

有用かどうか試してみてください

create table #piv 
(
mp varchar(10), 
cp varchar(10), 
freq varchar(10), 
time int, 
entryd date, 
acuralize int 
) 
insert into #piv values 
('don','asper','da',30,getdate(),0), 
('dwm','donl','da',10,getdate(),3), 
('qar','qpr','da',15,getdate(),5), 
('qar','qpr','da',15,'01-16-17',5), 
('qar','qpr','da',15,'01-15-17',5), 
('qar','qpr','da',15,'01-16-17',5) 

SELECT * FROM #piv 
Declare @SQL varchar(max) = Stuff((Select Distinct ',' + QuoteName(entryd) From #piv Order by 1 For XML Path('')),1,1,'') 
Select @SQL = ' 
Select *,' + @SQL + ' 
From #piv 
Pivot (max(time) For [entryd] in (' + @SQL + ')) p' 
Exec(@SQL); 
+0

ありがとうチャヌクヤ。それは私の仕事です。 –

+0

はい私はその答えを受け入れました。 –

+0

を受け入れるということは、答えの左側にある右のマークにチェックを入れるだけです:).. @ PramodThakur – Chanukya

0

ダイナミックピボットを作成できます。良い例はlinkです。

Good Luck!

0
DECLARE @cols VARCHAR(max),@sql VARCHAR(max) 
    SELECT @cols=ISNULL(@cols+',[','[')+ CONVERT(VARCHAR,a.EntryDate,101)+']' 
    FROM mpcp a, DailyData b 
    where a.UserID=1 and a.MpCpId=b.MpCpId and DATEDIFF(d,GETDATE(),b.EntryDate) BETWEEN -5 AND 25 
    GROUP BY a.time 

    SET @sql=' 
    SELECT * FROM (

     SELECT a.MP,a.CP,a.Frequency,a.Time,CONVERT(varchar(12),b.date,101) AS EntryDate,b.actualtime 
     FROM mpcp a, DailyData b 
     WHERE a.UserID=1 and a.MpCpId=b.MpCpId and where a.UserID=1 and a.MpCpId=b.MpCpId and DATEDIFF(d,GETDATE(),b.EntryDate) BETWEEN -5 AND 25 
) AS t 
    PIVOT (MAX(actualtime) FOR EntryDate IN ('[email protected]+'))' 
    EXEC(@sql) 
関連する問題