none
Toplamını aldığımız alanların toplamını almak RRS feed

  • Soru

  • Merhaba,

    Benim sorunum iki alanın toplamını aldıktan sonra toplamını aldığım alanların genel toplamını almak istiyorum fakat başaramadım.  Sorguyu aşağıdaki çalıştırdığımda her şubemiz için TL farklı satırda olduğundan dolayı döviz bazında gruplayamıyorum. Amacım tarih, Şube, Döviz Bazında toplam tutarı görmek istiyorum.


    Yardımcı olabilir misiniz ?

    SELECT  
    KASATarihi
    ,b.BIRIMADI
    ,pt.PARATURU
    ,sum ((KUPURTURU * ADET) / bolen) tutar
     
      
     FROM [test_nom_opr_test].[dbo].[Gunluk_BIRIMLER_MASTER_KASA]
     join BIRIMLER b on Gunluk_BIRIMLER_MASTER_KASA.CIT_BIRIMID = b.BIRIM_ID
     join PARATURLERI pt on Gunluk_BIRIMLER_MASTER_KASA.PARATURU = pt.PARA_TR_ID
     
     where KASATarihi between '2019-08-01' and '2019-08-01'
     group by KASATarihi, b.BIRIMADI, pt.PARATURU, KUPURTURU, bolen
     order by KASATarihi, b.BIRIMADI, pt.PARATURU 

    8 Kasım 2019 Cuma 12:18

Yanıtlar

  • Merhaba,

    Çetin beyin yazmış olduklarına ek olarak, sorguda kupurturu,bolen   alanları hem sum içinde hemde group by kullanmışınız.

    Aşağıdaki şekilde deneyebilir misiniz.

    SELECT  
    KASATarihi
    ,b.BIRIMADI
    ,pt.PARATURU
    ,sum ((KUPURTURU * ADET) / bolen) tutar
     
      
     FROM [test_nom_opr_test].[dbo].[Gunluk_BIRIMLER_MASTER_KASA]
     join BIRIMLER b on Gunluk_BIRIMLER_MASTER_KASA.CIT_BIRIMID = b.BIRIM_ID
     join PARATURLERI pt on Gunluk_BIRIMLER_MASTER_KASA.PARATURU = pt.PARA_TR_ID
     
     where KASATarihi between '2019-08-01' and '2019-08-01'
     group by KASATarihi, b.BIRIMADI, pt.PARATURU
     order by KASATarihi, b.BIRIMADI, pt.PARATURU 


    • Yanıt Olarak İşaretleyen FCankara 11 Kasım 2019 Pazartesi 12:14
    9 Kasım 2019 Cumartesi 06:04

Tüm Yanıtlar

  • Kod olarak ornek veri ile istediğiniz ciktiyi verirseniz sorunuz anlaşılacak sanırım. 

    Not: where KASaTarihi between '2019-08-01' and '2019-08-01' garip olmus. Ya:

    where KASaTarihi = '20190801'

    seklinde yazın, ya da saat kismini da içerebilecek degerler icin:

    where KASaTarihi >= '20190801' and KASATarihi < '20190802'

    seklinde. Between SQL serverda DateTime range sorgular icin kullanılmaz (3 milisaniye hassasiyet var, yanlış sonuclara yol acabilir). 



    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.

    8 Kasım 2019 Cuma 12:25
  • Merhaba,

    Çetin beyin yazmış olduklarına ek olarak, sorguda kupurturu,bolen   alanları hem sum içinde hemde group by kullanmışınız.

    Aşağıdaki şekilde deneyebilir misiniz.

    SELECT  
    KASATarihi
    ,b.BIRIMADI
    ,pt.PARATURU
    ,sum ((KUPURTURU * ADET) / bolen) tutar
     
      
     FROM [test_nom_opr_test].[dbo].[Gunluk_BIRIMLER_MASTER_KASA]
     join BIRIMLER b on Gunluk_BIRIMLER_MASTER_KASA.CIT_BIRIMID = b.BIRIM_ID
     join PARATURLERI pt on Gunluk_BIRIMLER_MASTER_KASA.PARATURU = pt.PARA_TR_ID
     
     where KASATarihi between '2019-08-01' and '2019-08-01'
     group by KASATarihi, b.BIRIMADI, pt.PARATURU
     order by KASATarihi, b.BIRIMADI, pt.PARATURU 


    • Yanıt Olarak İşaretleyen FCankara 11 Kasım 2019 Pazartesi 12:14
    9 Kasım 2019 Cumartesi 06:04
  • "KASaTarihi between '2019-08-01' and '2019-08-01' garip olmus" bu konuda haklısınız normalde tarih aralığını çektiğim için bu şekilde kullanıyorum. Örnek tek bir tarihte kaldığı için garip olmuş.

    Between SQL serverda DateTime range sorgular icin kullanılmaz (3 milisaniye hassasiyet var, yanlış sonuclara yol acabilir). 

    notunuz için teşekkürler.

    11 Kasım 2019 Pazartesi 12:13
  • Bu şekilde sorun çözülmüş oldu. Hatamı gördüm. Teşekkürler.
    11 Kasım 2019 Pazartesi 12:14