Forum

MSSQL Dinamik Pivot
 
Bildirimler
Hepsini Temizle

MSSQL Dinamik Pivot

2 Yazılar
1 Üyeler
0 Reactions
2,145 Görüntüleme
(@ErdiAkkok)
Gönderiler: 4
Active Member
Konu başlatıcı
 

 

ID BASVURU_ID ALAN ALAN_DEGER
1 1 key ANI0000008
2 1 FormId 6
3 1 Cinsiyet Lütfen Cinsiyetinizi Seçiniz
4 1 İl  
5 1 Uçuş Seçenek 1 Uçuş Seçiniz
6 1 Uçuş Seçenek 2 Uçuş Seçiniz
7 1 Uçuş Seçenek 3 Uçuş Seçiniz
8 1 Ad Soyad  
9 1 Doğum Tarihi  
10 1 Adres  
11 1 İlçe  
12 1 E-mail Adresi  
13 1 Ev-İş Tel  
14 1 Cep Telefonu  
15 1 Havaalanı Havaalanı Seçiniz
16 1 Gidiş Tarihi 1  
17 1 Gidiş Tarihi 2  
18 1 Gidiş Tarihi 3  
19 1 Dönüş Tarihi 1  
20 1 Dönüş Tarihi 2  
21 1 Dönüş Tarihi 3  
22 1    
23 2 key ANI0000008
24 2 FormId 6
25 2 Cinsiyet Erkek
26 2 İl İstanbul
27 2 Uçuş Seçenek 1 Brüksel
28 2 Uçuş Seçenek 2 Amsterdam
29 2 Uçuş Seçenek 3 Paris
30 2 Ad Soyad Xxxx xxx
31 2 Doğum Tarihi 13.Oca.90
32 2 Adres xxx xxxx xxx xxx
33 2 İlçe xxx xxxx
34 2 E-mail Adresi xxx@xyz.com
35 2 Ev-İş Tel 1111111111
36 2 Cep Telefonu 0000000000
37 2 Havaalanı Ankara
38 2 Gidiş Tarihi 1 13.Nis.15
39 2 Gidiş Tarihi 2 22.Nis.15
40 2 Gidiş Tarihi 3 30.Nis.15
41 2 Dönüş Tarihi 1 14.Haz.15
42 2 Dönüş Tarihi 2 19.Haz.15
43 2 Dönüş Tarihi 3 30.Haz.15
44 2    
45 3 key ANI0000009
46 3 FormId 6
47 3 Cinsiyet Erkek
48 3 İl İstanbul
49 3 Uçuş Seçenek 1 Budapeşte
50 3 Uçuş Seçenek 2 Amsterdam

 

 

Merhabalar,

Yukarıda gördüğünüz yapıda bir tablom var. Amacım dinamik bir pivot uygulaması yapmak. 'BASVURU_ID' alanına göre hareket edeceğim. Örnek olarak 'BASVURU_ID=1' olan verilerin 'ALAN' kolonu değerlerini sütun, 'ALAN_DEGER' kolonu değerlerini satır yapmak istiyorum. Bu değerler her 'BASVURU_ID'de değişebilir. 'BASVURU_ID=1' olanda gidiş-dönüş tarihleri olup, 'BASVURU_ID=2' olan verilerin içerisinde gidiş-dönüş tarihi alanları olmayabilir mesela. O yüzden dinamik bir uygulama gerekiyor sanırım. Konuyla ilgili dönüşünüzü bekliyorum. Şimdiden teşekkür ederim. 🙂 

 

 

 
Gönderildi : 11/05/2015 21:38

(@ErdiAkkok)
Gönderiler: 4
Active Member
Konu başlatıcı
 

Merhaba,

Öncelikle yardımlarınız için çok teşekkür ederim. Link işime yaradı bir sorgu çıkardım aşağıdaki gibi;

 

 SELECT [BASVURU_ID],[Ad Soyad],[Adres],[Cep Telefonu],[Cinsiyet],[Doğum Tarihi],[Dönüş Tarihi 1],[Dönüş Tarihi 2],[Dönüş Tarihi 3],[E-mail Adresi],[Ev-İş Tel],[FormId],[Gidiş Tarihi 1],[Gidiş Tarihi 2],[Gidiş Tarihi 3],[Havaalanı],[İl],[İlçe],[key],[Uçuş Seçenek 1],[Uçuş Seçenek 2],[Uçuş Seçenek 3]

    FROM Tablo_Adı

    PIVOT(MAX(ALAN_DEGER) 

          FOR ALAN IN ([Ad Soyad],[Adres],[Cep Telefonu],[Cinsiyet],[Doğum Tarihi],[Dönüş Tarihi 1],[Dönüş Tarihi 2],[Dönüş Tarihi 3],[E-mail Adresi],[Ev-İş Tel],[FormId],[Gidiş Tarihi 1],[Gidiş Tarihi 2],[Gidiş Tarihi 3],[Havaalanı],[İl],[İlçe],[key],[Uçuş Seçenek 1],[Uçuş Seçenek 2],[Uçuş Seçenek 3])) AS PVTTable 

 

Bu sorgu üzerinden 'BASVURU_ID'yi where ile koşullandırarak istediğim sonuçları görebiliyorum. Fakat satırlarda göstermek istediğim değerlerin hepsi sayısal bir ifade değil, içerisinde string değerler de yer alıyor. Sanırım 'MAX','MIN' gibi fonksiyonlar belirtmek zorunda olduğumdan dolayı görmek istediğim her sonucu aynı 'BASVURU_ID' ile farklı satırlarda gösteriyor. Bakıyor önce Ad Soyad alanı dolu, ilk satırda oranın değerini gösteriyor, diğer kolonları Null gösteriyor. Bir alt satırda Adres kolonunu dolu gösteriyor diğerlerini Null gösteriyor. Her birinin 'BASVURU_ID'si benim belirttiğim ID aslında. Hepsini tek satırda toplama imkanımız da var mıdır?

 

 

 
Gönderildi : 14/05/2015 18:59

Paylaş: