Yazilim Mutfagi Forumu Homepage
Forum Home Forum Home > VERI TABANI > SQL Server
  New Posts New Posts RSS Feed - Pivot Table Nedir ve Nasil Kullanilir
  FAQ FAQ  Forum Search   Register Register  Login Login

Pivot Table Nedir ve Nasil Kullanilir

 Post Reply Post Reply Page  <12
Author
Message
mskunt View Drop Down
Admin Group
Admin Group
Avatar

Joined: 19-Eylül-2012
Location: Ankara
Status: Offline
Points: 205
Post Options Post Options   Thanks (0) Thanks(0)   Quote mskunt Quote  Post ReplyReply Direct Link To This Post Posted: 13-Mart-2012 at 17:28

alt kategorileri kolon kolon degilde, tek bir kolonda birlestirebilirsin. zaten alt kategori sayin sabitte olmayacaktir. bu durumda kac kolon olusacak bilemezsin.

su sorgu isene yararmi:

select id,k.deger as kategoriadi, STUFF(

(

SELECT  ',' + t2.deger  AS [text()]

from #kategori_altKategori t1

inner join #alt_kategori t2 on t1.altKategoriID = t2.id

where k.id = t1.kategoriID

Order by t2.id

for xml PATH('')),1,1,'') AS altkategoriler

 from #kategori k

Back to Top
mskunt View Drop Down
Admin Group
Admin Group
Avatar

Joined: 19-Eylül-2012
Location: Ankara
Status: Offline
Points: 205
Post Options Post Options   Thanks (0) Thanks(0)   Quote mskunt Quote  Post ReplyReply Direct Link To This Post Posted: 13-Mart-2012 at 17:28

asagidaki sorgu su sonucu çikarir.

id          kategoriadi altkategoriler

----------- ----------- ------------------------------------

1           Bilgisayar  hdd,cpu,cpu,memory

2           Beyaz Esya  buz dolabi,bulasik makinesi

 

(2 row(s) affected)

 

Back to Top
mskunt View Drop Down
Admin Group
Admin Group
Avatar

Joined: 19-Eylül-2012
Location: Ankara
Status: Offline
Points: 205
Post Options Post Options   Thanks (0) Thanks(0)   Quote mskunt Quote  Post ReplyReply Direct Link To This Post Posted: 13-Mart-2012 at 17:29

bu arada senin gonderdigin scripte table variable kullanmistin, ben temp table kullandim. o kismi degistirip denersen sonucu sende görebilirsin

Back to Top
Hüseyin View Drop Down
Guest Group
Guest Group
Avatar
null
Post Options Post Options   Thanks (0) Thanks(0)   Quote Hüseyin Quote  Post ReplyReply Direct Link To This Post Posted: 13-Mart-2012 at 17:43

 Yardimci olabilecek yok mu acaba?

Back to Top
Hüseyin View Drop Down
Guest Group
Guest Group
Avatar
null
Post Options Post Options   Thanks (0) Thanks(0)   Quote Hüseyin Quote  Post ReplyReply Direct Link To This Post Posted: 13-Mart-2012 at 17:48

Selam dostum,

Onerdigin sekilde cikti alabiliyorum fakat benim almak istedigim sonuc ayri kolonlarda olmasi. Procedure de yazdim temp'e de attim stringi de split ettim fakat cok veri oldugu icin split olayi pek mantikli gelmiyor character character okuyup parse ettirdim fakat soyle bir sorun oldu, 

onerdigin sonucu alip parse ettikten sonra temp 'e atiyorum fakat bu temp ile join yapmam gerekiyor baska tablolarlada 

yani bu uclemeninin yannida baska bir tablo ile join gerekiyor. Son olarak birde 2 tablonunu baglantisini tutan 3. Kategori_AltKategori tablosunu pivot ile yatay hale getirip oyle bu uclemeyi joinlemeye calisicam basarabilirsem burada da sonucu paylasirim.

Back to Top
Hüseyin View Drop Down
Guest Group
Guest Group
Avatar
null
Post Options Post Options   Thanks (0) Thanks(0)   Quote Hüseyin Quote  Post ReplyReply Direct Link To This Post Posted: 13-Mart-2012 at 17:51

Gecen surede bir cozume ulasirsaniz sizde paylasirsaniz cok sevinirim, ilginize bir kez daha tesekkur ederim.

Bu arada ufak bir not: elde etmek istedigim ciktiyi MySql tarafinda Contact li bir fonksiyonla alabiliyorum sanirim ama ya ben uzun zamandir bununla ugrasiyorum bir muadilini bulamadim o kadar aramama ragmen yada ben buldugum ornekleri kendime uyarlayamadim yaklasik 2 haftadir bunun uzerine kafa patlatiyorum gercekten saka gibi ms sql de boyle birseyin yapilamiyor olmasi.

Back to Top
Hüseyin View Drop Down
Guest Group
Guest Group
Avatar
null
Post Options Post Options   Thanks (0) Thanks(0)   Quote Hüseyin Quote  Post ReplyReply Direct Link To This Post Posted: 13-Mart-2012 at 20:42

 Olmuyor bosuna kasmaya gerek yok,  deneyecekler varsa bi yenilik gelmeden mümkün görünmüyor..

Back to Top
mskunt View Drop Down
Admin Group
Admin Group
Avatar

Joined: 19-Eylül-2012
Location: Ankara
Status: Offline
Points: 205
Post Options Post Options   Thanks (0) Thanks(0)   Quote mskunt Quote  Post ReplyReply Direct Link To This Post Posted: 13-Mart-2012 at 22:43

 bende baktim ama bir çözüm yok gibi.  ama ilk firsatta microsoftdan gelen arkadaslara bir sorarim.

Back to Top
Fatih View Drop Down
Guest Group
Guest Group
Avatar
null
Post Options Post Options   Thanks (0) Thanks(0)   Quote Fatih Quote  Post ReplyReply Direct Link To This Post Posted: 08-Mart-2016 at 19:05
Kolon isimlerini özelleştirebilen var mı? 
Back to Top
yazilimmutfagi View Drop Down
Admin Group
Admin Group
Avatar

Joined: 01-Ekim-2012
Status: Offline
Points: 20
Post Options Post Options   Thanks (0) Thanks(0)   Quote yazilimmutfagi Quote  Post ReplyReply Direct Link To This Post Posted: 12-Mart-2016 at 00:43
kolon ismini tıkladığında, yukarıda fx yanındaki kısımda değişiklik yapınca oluyor, sizde aktif olmadımı?

Back to Top
celal View Drop Down
Guest Group
Guest Group
Avatar
null
Post Options Post Options   Thanks (0) Thanks(0)   Quote celal Quote  Post ReplyReply Direct Link To This Post Posted: 15-Aralık-2016 at 08:35
geç olmamıştır diye umuyorum ama kolon isimleri derken galiba 2011,2012 kolonlarına spesifik bir isim vermekten bahsediyorsunuz, eğer onu soruyorsanız parantez içindeki select sorgusunda dönem için yılları case when ile isimlendirebilirsiniz sonra aşağıda for kısmında 2011,2012 yazmak yerine sizin yazmış olduğunuz kolon isimlerini yazarsınız.
Back to Top
RIFAT View Drop Down
Guest Group
Guest Group
Avatar
null
Post Options Post Options   Thanks (0) Thanks(0)   Quote RIFAT Quote  Post ReplyReply Direct Link To This Post Posted: 24-Şubat-2017 at 10:31
Kolon adları için,  IsNull([200911], 0) As 'Donem_200911'  şeklindeki yöntemle yeni bir ad tanımlayabilirsiniz.
Back to Top
RIFAT View Drop Down
Guest Group
Guest Group
Avatar
null
Post Options Post Options   Thanks (0) Thanks(0)   Quote RIFAT Quote  Post ReplyReply Direct Link To This Post Posted: 24-Şubat-2017 at 10:44
Alttaki sorguyu da örnek olarak bırakıyorum.

Select p.MATCH_ID, p.BETFIRM_ID, p.MARKETS_CODE, p.SCOPES_CODE, 'F' As FIRSTLAST, p.CRITERION, p.BETFIRM_SORT, p.SCOPES_SORT,
       IsNull([1], 0) As 'S_1', IsNull([X], 0) As 'S_X', IsNull([2], 0) As 'S_2' 
   From (Select a.MATCH_ID, a.BETFIRM_ID, s.BETFIRM_SORT, a.MARKETS_CODE, a.SCOPES_CODE, IsNull(b.SCOPES_SORT, 0) As SCOPES_SORT, 
                a.SUBS_CODE, a.CRITERION,
a.FIRST_ODDS
            From HB_TBLMATCHODDS As a With(NoLock)
  Left Outer Join HB_VWMARKETSSCOPES As b On b.SCOPES_CODE = a.SCOPES_CODE
  Left Outer Join HB_VWBETFIRM As s On s.BETFIRM_ID = a.BETFIRM_ID
Where a.MARKETS_CODE = '1X2'
) As q
   Pivot
      (Sum(q.FIRST_ODDS)
     For q.SUBS_CODE In ([1], [X], [2])
 ) As p
   Order By p.MATCH_ID, p.MARKETS_CODE, p.SCOPES_SORT, p.CRITERION, p.BETFIRM_SORT

Back to Top
 Post Reply Post Reply Page  <12
  Share Topic   

Quick Reply
Name:

Message:
   NoFollow is applied to all links from this forum
 Enable BBcodes
Security Code:
Code Image - Please contact webmaster if you have problems seeing this image code  Refresh Refresh Image
Please enter the Security Code exactly as shown in image format.
Cookies must be enabled on your web browser.

Forum Jump Forum Permissions View Drop Down



This page was generated in 0.141 seconds.