none
Verileri yan yana listelemek RRS feed

  • Soru

  • ID        İSİM         FİYAT NO        FİYAT

    1          ELMA              1                10

    2          ELMA              2                11

    3          ELMA              3                12

    S.a

    Bu tabloda ki verilei aşaşğıdaki gibi sıralamak istiyorum ama bir türlü yapamadım. Yardımcı olursanız çok sevinirim teşekkürler.

     İSİM      FİYAT 1       FİYAT 2       FİYAT

    ELMA            10               11           12

    16 Aralık 2019 Pazartesi 15:45

Tüm Yanıtlar

  • Birden fazla yolu var:

    SELECT isim, 
       MAX(case when fiyatNo = 1 then fiyat END) AS Fiyat1,
       MAX(case when fiyatNo = 2 then fiyat END) AS Fiyat2,
       MAX(case when fiyatNo = 3 then fiyat END) AS Fiyat3
    FROM tabloAd
    GROUP BY isim;

     


    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    • Yanıt Olarak Öneren CetinBasoz 17 Aralık 2019 Salı 14:50
    16 Aralık 2019 Pazartesi 17:18
  • Birden fazla yolu var:

    SELECT isim, 
       MAX(case when fiyatNo = 1 then fiyat END) AS Fiyat1,
       MAX(case when fiyatNo = 2 then fiyat END) AS Fiyat2,
       MAX(case when fiyatNo = 3 then fiyat END) AS Fiyat3
    FROM tabloAd
    GROUP BY isim;

     



    Teşekkürler çok yardımcı oldunuz yanlız bu kodu aşağıdaki gibi kullandığım da distinc ifadesi çalışmıyor

    SELECT          
                         DISTINCT STKFIYSTKKOD
                        ,MAX(case when [STKFIYAT].[STKFIYNO]=1 then [STKFIYTUTAR] END) AS Fiyat1
                        ,MAX(case when [STKFIYAT].[STKFIYNO]=2 then [STKFIYTUTAR] END) AS Fiyat2
                        ,MAX(case when [STKFIYAT].[STKFIYNO]=3 then [STKFIYTUTAR] END) AS Fiyat3
                        
      FROM [ETA_DERYAGIDA_2017].[dbo].[STKFIYAT] GROUP BY STKFIYSTKKOD,STKFIYTUTAR

    16 Aralık 2019 Pazartesi 18:43
  • Ben DISTINCT kullanın dedigimi hatirlamiyorum.


    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    • Düzenleyen CetinBasoz 16 Aralık 2019 Pazartesi 19:01
    16 Aralık 2019 Pazartesi 19:01
  • Ben DISTINCT kullanın dedigimi hatirlamiyorum.




    Sağolun
    16 Aralık 2019 Pazartesi 19:13
  • Sorununuz çözüldü mü çözülmedi mi anlayamadım. DISTINCT'i ekstra eklemişsiniz, ayrıca hatalı bir sekilde group by'a 2. bir kolon eklemişsiniz.


    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    17 Aralık 2019 Salı 14:50
  • Sorununuz çözüldü mü çözülmedi mi anlayamadım. DISTINCT'i ekstra eklemişsiniz, ayrıca hatalı bir sekilde group by'a 2. bir kolon eklemişsiniz.


    Henüz çözemedim.


    18 Aralık 2019 Çarşamba 06:26
  • Bu yeterli bir cevap degil. Neyi çözemediniz, ne oldu? Ilk sorunuzun tam cevabi yukarıda. Sonradan yazdiginizda neyin hatalı oldugunu da yazdım. En iyisi ornek veri ve beklediğiniz ciktiyi verin (yukarıdaki ornek ve ciktiya gore cevap var zaten).


    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    18 Aralık 2019 Çarşamba 08:22
  • Bu yeterli bir cevap degil. Neyi çözemediniz, ne oldu? Ilk sorunuzun tam cevabi yukarıda. Sonradan yazdiginizda neyin hatalı oldugunu da yazdım. En iyisi ornek veri ve beklediğiniz ciktiyi verin (yukarıdaki ornek ve ciktiya gore cevap var zaten).

    Sizin yazıdığınız sorguyu çalıştırdığımda şöyle bi sonuç dönüyor.

    KOD   FİYAT1                  FİYAT 2          FİYAT 3

    101      
    12 NULL NULL
    101      
    NULL 14 NULL
    101      
    NULL NULL 29
    102      
    22 NULL NULL
    102      
    NULL 25 NULL
    102      
    NULL NULL 44
    116      
    44 NULL NULL
    116      
    NULL 46 NULL
    116      
    NULL NULL 77

    ben aynı koda sahip fiyatları aşağıdaki gibi tek satırda almak istiyorum

    KOD    FİYAT 1            FİYAT 2           FİYAT 3

    101       12 14
    29





    18 Aralık 2019 Çarşamba 08:47
  • Hayir yanlisiniz var, siz kodu yanlış yazmissinizdir. Benim yazdigim kodla:

    kod Fiyat1 Fiyat2 Fiyat3
    101 12 14 29
    102 22 25 44
    116 44 46 77

    seklinde donuyor. 

    Burada DBFiddle demosu var, bakabilirsiniz.

    Not: Benim yazdigim kodda zaten sizin yazdiginiz gibi bir sonucun donmesi, group by nedeniyle mumkun degil.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    • Düzenleyen CetinBasoz 18 Aralık 2019 Çarşamba 09:00
    18 Aralık 2019 Çarşamba 08:58
  • Hayir yanlisiniz var, siz kodu yanlış yazmissinizdir. Benim yazdigim kodla:

    kod Fiyat1 Fiyat2 Fiyat3
    101 12 14 29
    102 22 25 44
    116 44 46 77

    seklinde donuyor. 

    Burada DBFiddle demosu var, bakabilirsiniz.

    Not: Benim yazdigim kodda zaten sizin yazdiginiz gibi bir sonucun donmesi, group by nedeniyle mumkun degil.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    Aynen çok haklısınız ben yanlış yazıyormuşum daha doğrusu ben farklı bişey yapmaya çalıştığım için oluyor böyle.

    Şöyle anlatıyım bu verdiğiniz sorguya ek yapmaya çalışıyorum yani tablo da ki kod numaraları  başka bir tablo da daha var ve orada ürün isimleri var ben bu koda denk gelen ürün ismini çağırmak istiyorum bunu yapmaya çalışınca karıştı herşey.

    18 Aralık 2019 Çarşamba 09:11
  • CTE, ya da subquery kullanın karistiracak bir şey yok. Ornek:

    with pvt as
    ( 
    SELECT kod, 
       MAX(case when fiyatNo = 1 then fiyat END) AS Fiyat1,
       MAX(case when fiyatNo = 2 then fiyat END) AS Fiyat2,
       MAX(case when fiyatNo = 3 then fiyat END) AS Fiyat3
    FROM Fiyatlar
    GROUP BY kod
    )
    select pvt.kod, t.isim, pvt.Fiyat1, pvt.Fiyat2, pvt.Fiyat3
    from pvt
    inner join tabloAd t 
        ON pvt.Kod = t.Kod; 




    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    18 Aralık 2019 Çarşamba 09:15
  • CTE, ya da subquery kullanın karistiracak bir şey yok. Ornek:

    with pvt as
    ( 
    SELECT kod, 
       MAX(case when fiyatNo = 1 then fiyat END) AS Fiyat1,
       MAX(case when fiyatNo = 2 then fiyat END) AS Fiyat2,
       MAX(case when fiyatNo = 3 then fiyat END) AS Fiyat3
    FROM Fiyatlar
    GROUP BY kod
    )
    select pvt.kod, t.isim, pvt.Fiyat1, pvt.Fiyat2, pvt.Fiyat3
    from pvt
    inner join tabloAd t 
        ON pvt.Kod = t.Kod; 




    Çok teşekkür ederim ama son birşey daha isteyeğeceğim utanarak :)

    aşağıdaki sorguya t.STKOZKOD<>'PASİF' şartını ekleme imkanim varmı.

    WITH pvt AS(
    SELECT [STKFIYSTKKOD],
       MAX(case when [STKFIYAT].[STKFIYNO]=1 then [STKFIYTUTAR] END) AS Fiyat1,
       MAX(case when [STKFIYAT].[STKFIYNO]=1 then [STKFIYTUTAR] END) AS Fiyat2,
       MAX(case when [STKFIYAT].[STKFIYNO]=1 then [STKFIYTUTAR] END) AS Fiyat3
    FROM [ETA_DERYAGIDA_2017].[dbo].[STKFIYAT] GROUP BY [STKFIYSTKKOD])

    select STKFIYSTKKOD, t.STKCINSI, pvt.Fiyat1, pvt.Fiyat2, pvt.Fiyat3
    from pvt
    inner join [ETA_DERYAGIDA_2017].[dbo].[STKKART] t
        ON pvt.STKFIYSTKKOD = t.STKKOD;

                                            
    18 Aralık 2019 Çarşamba 11:11
  • Tabii ki var, en sona ekleyebilirsiniz onu.

    Not: Gerekecegini sanmam, ama gerekirse, CTE içerisine dolaylı olarak ekleyerek performans artisi saglanabilir (veri miktarı, dagilimi ... gibi faktörler etkilediğinden denemek gerekir). Yavaş gelirse aklınızda bulunsun.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    • Düzenleyen CetinBasoz 18 Aralık 2019 Çarşamba 12:42
    18 Aralık 2019 Çarşamba 12:42
  • Tabii ki var, en sona ekleyebilirsiniz onu.

    Not: Gerekecegini sanmam, ama gerekirse, CTE içerisine dolaylı olarak ekleyerek performans artisi saglanabilir (veri miktarı, dagilimi ... gibi faktörler etkilediğinden denemek gerekir). Yavaş gelirse aklınızda bulunsun.




    Dediğiniz gibi halletim. Tekrardan çok teşekkürler allah razı olsun.
    18 Aralık 2019 Çarşamba 13:00