SQl Pivot Yardımı

metcip
11-11-2013, 15:40   |  #1  
OP Yeni Üye
Teşekkür Sayısı: 0
38 mesaj
Kayıt Tarihi:Kayıt: Mar 2005

Yaptığım bir kodu pivot tablo olarak çalıştırmak istediğimde sorun yaşıyorum, yardım rica ediyorum;

Benim yaptığım kodda; pazarlamacı, tarih ve adet kolonları vardır.

Normal sql kodum şöyle;

SELECT UserID, BeginDate,count(UserID) paz
FROM AJANDA
WHERE Begindate between '2013-01-01 00:00:00.000' and getdate()
group by UserID, BeginDate

Normal sorgu sonucu ;

Burada benim istediğimin görüntüsü şöyle; 

Bunun için pivot table yaptım;
Kodu şöyle;

with aj AS
(
SELECT
UserID,BeginDate, --CreatedOn,
count(UserID) as paz
FROM AJANDA
WHERE CreatedOn between '2013-01-01 00:00:00.000' and getdate()
group by UserID,BeginDate
--, CreatedOn
)select * from aj
pivot (sum(paz) for BeginDate in
([2013-11-01],[2013-11-02],[2013-11-03],[2013-11-04],[2013-11-05],[2013-11-06]
,[2013-11-07],[2013-11-08],[2013-11-09],[2013-11-10],[2013-11-11])) as tarih

sonucu ise şöyle;

Şimdi burada iki konuda yardımınızı rica ediyorum;

1 ) koda baktığınızda görebileceğiniz gibi; pivot'taki tarihleri elle yazdım, ancak bunlar tabloya otomatik yazan tarihlerdir, bunları pivotta elle yazmadan "BeginDate" kolonundan direkt çağırmak yada bir tarih aralığı vererek yazmak mümkün müdür?
Ben between falan denedim ama pivotta olmuyor galiba.
2) pivot'un sonucunda NULL kayıtların yerine nasıl 0 yazarım?
pivot isnull(sum(paz),'0' for BeginDate in
denedim ama çalışmadı.

Özellikle birinci madde ile yardımlarını bekliyorum.

teşekkürler

iyi günler