Alınan Hizmet Toplam Hatası

Gönderen Konu: Alınan Hizmet Toplam Hatası  (Okunma sayısı 378 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı ALOX

  • Logo Kullanıcısı
  • **
  • Karma: 1
Alınan Hizmet Toplam Hatası
« : 08.03.2018, 11:56 »
mrb.
herkese kolay gelsin.
Aşağıdak sorgu ile alınan hizmetlerin aylık toplamlarını alabiliyorum.
Fakat tek sıkıntı her ay toplamının 2 katını veriyor.
size zahmet yardımcı olursanız sevinirim.

SELECT
TANIM.CODE AS 'HİZMET KODU',
TANIM.DEFINITION_ AS 'HİZMET ADI',
TANIM.CARDTYPE AS 'HİZMET TÜRÜ',
OCAK.TOPLAM [OCAK],
SUBAT.TOPLAM [ŞUBAT],
MART.TOPLAM [MART],
NİSAN.TOPLAM [NİSAN],
MAYIS.TOPLAM [MAYIS],
HAZİRAN.TOPLAM [HAZİRAN],
TEMMUZ.TOPLAM [TEMMUZ],
AĞUSTOS.TOPLAM [AĞUSTOS],
EYLÜL.TOPLAM [EYLÜL],
EKİM.TOPLAM [EKİM],
KASIM.TOPLAM [KASIM],
ARALIK.TOPLAM [ARALIK]

from
LG_001_SRVCARD TANIM
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=1 GROUP BY CARDREF  ) OCAK ON OCAK.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=2 GROUP BY CARDREF  ) SUBAT ON SUBAT.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=3 GROUP BY CARDREF  ) MART ON MART.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=4 GROUP BY CARDREF  ) NİSAN ON NİSAN.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=5 GROUP BY CARDREF  ) MAYIS ON MAYIS.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=6 GROUP BY CARDREF  ) HAZİRAN ON HAZİRAN.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=7 GROUP BY CARDREF  ) TEMMUZ ON TEMMUZ.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=8 GROUP BY CARDREF  ) AĞUSTOS ON AĞUSTOS.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=9 GROUP BY CARDREF  ) EYLÜL ON EYLÜL.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=10 GROUP BY CARDREF  ) EKİM ON EKİM.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=11 GROUP BY CARDREF  ) KASIM ON KASIM.CARDREF =TANIM.LOGICALREF
LEFT JOIN (SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=12 GROUP BY CARDREF  ) ARALIK ON ARALIK.CARDREF =TANIM.LOGICALREF
WHERE TANIM.CODE LIKE ('00%')

vedat_ozer

  • Ziyaretçi
Ynt: Alınan Hizmet Toplam Hatası
« Yanıtla #1 : 08.03.2018, 12:06 »
Selamlar,

Ambar parametresini ekleyerek deneyin.

Bir tane örnek;

Kod: [Seç]
(SELECT CARDREF, SUM(TOTALS_CASHAMNT) [TOPLAM] FROM LV_001_03_SRVTOT WHERE MONTH_=1 AND INVENNO<>-1 GROUP BY CARDREF  )

Çevrimdışı ALOX

  • Logo Kullanıcısı
  • **
  • Karma: 1
Ynt: Alınan Hizmet Toplam Hatası
« Yanıtla #2 : 08.03.2018, 12:11 »
düzeldi..
ALLAH(S.W.T.) sizden razı olsun inş.
yardımınız için.
selametle kalın inş.

vedat_ozer

  • Ziyaretçi
Ynt: Alınan Hizmet Toplam Hatası
« Yanıtla #3 : 08.03.2018, 13:15 »
Cümlemizden  razı olsun :)

Size bir kaç tavsiye vereyim tabi ki isterseniz.

Sorguyu böyle uzatmış oluyorsunuz aslında bunu Sql standart pıvot ile şekil verebilirsiniz.


Kod: [Seç]
WITH HIZMET AS ( SELECT
TANIM.CODE AS [Hizmet Kodu],
TANIM.DEFINITION_ AS [Hizmet Adı],
TANIM.CARDTYPE AS [Hizmet Türü],
TOPLAM.MONTH_ AS [AY],
SUM(TOPLAM.TOTALS_CASHAMNT) [Toplam]
from
LG_117_SRVCARD TANIM  LEFT OUTER JOIN LV_117_01_SRVTOT TOPLAM ON TOPLAM.CARDREF=TANIM.LOGICALREF
WHERE TOPLAM.INVENNO<>-1
GROUP BY
TOPLAM.MONTH_,
TANIM.CODE ,
TANIM.DEFINITION_ ,
TANIM.CARDTYPE)
SELECT
[Hizmet Kodu],[Hizmet Adı],[Hizmet Türü],ISNULL([1],0)'Ocak',ISNULL([2],0)'Şubat',ISNULL([3],0)'Mart',ISNULL([4],0) 'Nisan',
ISNULL([5],0)'Mayıs',ISNULL([6],0)'Haziran',ISNULL([7],0)'Temmuz',ISNULL([8],0)'Ağustos',ISNULL([9],0)'Eylül',ISNULL([10],0)'Ekim',
ISNULL([11],0)'Kasım',ISNULL([12],0) 'Aralık',ISNULL([1],0)+ISNULL([2],0)+ISNULL([3],0)+ISNULL([4],0)+ISNULL([5],0)+ISNULL([6],0)+
ISNULL([7],0)+ISNULL([8],0)+ISNULL([9],0)+ISNULL([10],0)+ISNULL([11],0)+ISNULL([12],0) 'Genel Toplam'
FROM HIZMET
PIVOT
(SUM(Toplam)
  FOR [AY] IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
)
AS VEDAT