• 22-05-2020, 23:09:41
    #1

    Merhabalar elimde şu sorguyla şu tabloyu buluyorum Select Satislar.alisveris_id, Satislar.satis_tarihi,Kasiyer.kasiyer_adi,Satislar .toplam_fiyat From Satislar INNER JOIN Kasiyer ON Satislar.kasiyer_id=Kasiyer.kasiyer_id; yapmak istediğim tablonun sütunları aynı böyle kalıcak sadece alisveris_idsi eşit olanların toplam_fiyatını toplayıp tek satırda göstermek istiyorum.
  • 22-05-2020, 23:13:27
    #2
    https://www.w3schools.com/sql/sql_groupby.asp

    Group by'dan bahsediyorsunuz sanırım
  • 22-05-2020, 23:16:39
    #3
    instads adlı üyeden alıntı: mesajı görüntüle
    https://www.w3schools.com/sql/sql_groupby.asp

    Group by'dan bahsediyorsunuz sanırım
    Groupby ile yapıyorum ama o zamanda sadece alisveris_id ve toplam fiyatı listeletebiliyorum
  • 22-05-2020, 23:28:04
    #4
    İlk sorguyu elinizde tutun. Birde "Group By" ile ID'lere göre toplama yapan sorgu hazırlandıktan sonra iki sorguyu "UNION" ile birleştirerek en alt satırlara ilgili ID'lerin toplamlarını yazdırabilirsiniz.
    SQLFiddle üzerinde bir örnek hazırladım.

    http://sqlfiddle.com/#!9/7159014/9
  • 22-05-2020, 23:40:12
    #5
    recepduman adlı üyeden alıntı: mesajı görüntüle
    İlk sorguyu elinizde tutun. Birde "Group By" ile ID'lere göre toplama yapan sorgu hazırlandıktan sonra iki sorguyu "UNION" ile birleştirerek en alt satırlara ilgili ID'lerin toplamlarını yazdırabilirsiniz.
    UNION ile nasıl yapacağımı anlamadım ne yazık ki

    Select Satislar.alisveris_id, Satislar.satis_tarihi,Kasiyer.kasiyer_adi From Satislar INNER JOIN Kasiyer ON Satislar.kasiyer_id=Kasiyer.kasiyer_id;

    Select alisveris_id, SUM(toplam_fiyat) from Satislar GROUP BY alisveris_id;

    iki sorgum bu nasıl birleştirebilirim.
  • 22-05-2020, 23:41:16
    #6
    Octavia adlı üyeden alıntı: mesajı görüntüle
    UNION ile nasıl yapacağımı anlamadım ne yazık ki

    Select Satislar.alisveris_id, Satislar.satis_tarihi,Kasiyer.kasiyer_adi From Satislar INNER JOIN Kasiyer ON Satislar.kasiyer_id=Kasiyer.kasiyer_id;

    Select alisveris_id, SUM(toplam_fiyat) from Satislar GROUP BY alisveris_id;

    iki sorgum bu nasıl birleştirebilirim.
    Bir önceki cevabımı düzenledim. SQL Fiddle örneği ekledim. O örneğe bakarak sorgunuzu düzenleyebilirsiniz.
  • 22-05-2020, 23:45:23
    #7
    recepduman adlı üyeden alıntı: mesajı görüntüle
    Bir önceki cevabımı düzenledim. SQL Fiddle örneği ekledim. O örneğe bakarak sorgunuzu düzenleyebilirsiniz.
    Msg 205, Level 16, State 1, Line 1
    All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.

    Select Satislar.alisveris_id, Satislar.satis_tarihi,Kasiyer.kasiyer_adi From Satislar INNER JOIN Kasiyer ON Satislar.kasiyer_id=Kasiyer.kasiyer_id
    UNION
    Select alisveris_id, SUM(toplam_fiyat) from Satislar GROUP BY alisveris_id;

    Bu şekilde hata alıyorum yaptığımda
  • 22-05-2020, 23:50:12
    #8
    Octavia adlı üyeden alıntı: mesajı görüntüle
    Msg 205, Level 16, State 1, Line 1
    All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.

    Select Satislar.alisveris_id, Satislar.satis_tarihi,Kasiyer.kasiyer_adi From Satislar INNER JOIN Kasiyer ON Satislar.kasiyer_id=Kasiyer.kasiyer_id
    UNION
    Select alisveris_id, SUM(toplam_fiyat) from Satislar GROUP BY alisveris_id;

    Bu şekilde hata alıyorum yaptığımda
    İki sorgudada aynı kolonları kullanmanız gerek. Örnekte boş kolonlar oluşturup içleri TOPLAM_FİYAT yazmasını sağlamıştım.
    "Select alisveris_id, SUM(toplam_fiyat) from Satislar GROUP BY alisveris_id;" sorgunuzu
    "Select alisveris_id, 'TOPLAM FIYAT' as satis_tarihi, 'TOPLAM FIYAT' as kasiyer_adi, sum(toplam_fiyat) as toplam_fiyat from Satislar GROUP BY alisveris_id;" şeklinde düzenlerseniz çalışacaktır.
    Ayrıca ilk sorgunuzdada "toplam_fiyat" kolonu eksik.
  • 22-05-2020, 23:58:09
    #9
    recepduman adlı üyeden alıntı: mesajı görüntüle
    İki sorgudada aynı kolonları kullanmanız gerek. Örnekte boş kolonlar oluşturup içleri TOPLAM_FİYAT yazmasını sağlamıştım.
    "Select alisveris_id, SUM(toplam_fiyat) from Satislar GROUP BY alisveris_id;" sorgunuzu
    "Select alisveris_id, 'TOPLAM FIYAT' as satis_tarihi, 'TOPLAM FIYAT' as kasiyer_adi, sum(toplam_fiyat) as toplam_fiyat from Satislar GROUP BY alisveris_id;" şeklinde düzenlerseniz çalışacaktır.
    Ayrıca ilk sorgunuzdada "toplam_fiyat" kolonu eksik.
    Kafam iyice karıştı gerçekten şimdide bu komuta bu hatayı veriyor

    Select Satislar.alisveris_id, Satislar.satis_tarihi,Kasiyer.kasiyer_adi,Satislar .toplam_fiyat From Satislar INNER JOIN Kasiyer ON Satislar.kasiyer_id=Kasiyer.kasiyer_id
    UNION
    Select alisveris_id, 'TOPLAM FIYAT' as satis_tarihi, 'TOPLAM FIYAT' as kasiyer_adi, sum(toplam_fiyat) as toplam_fiyat from Satislar GROUP BY alisveris_id;

    Msg 241, Level 16, State 1, Line 1
    Conversion failed when converting date and/or time from character string.