Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SQL' de Değişimde Toplam Almak
#1
Arkadaşlar Merhaba;  SQL' de yazmış olduğum kod da şunu yapmak istiyorum; 

Mesela BASLIK olarak FATURA 
           BASLIK olarak KASA şeklinde UNION ALL Kullanarak rapor aldım fakat dip kısım da ,

FATURA da GENELTOPLAM olan sütünü dip de toplamak 
KASA da TUTAR olan sütünü dip de toplamak 

Bu konuda bana yardımcı olabilecek misiniz?

KumulatifToplam Yanlış toplam yapıyor.

BASLIK          DURUMU            CARI_KODU ACIKLAMA   GENELTOPLAM    
FATURA       S.FATURA(ACIK)      0001030    NULL         921.00000000     
FATURA       S.FATURA(ACIK)      0001047    NULL         1845.55000000    
FATURA       S.FATURA(ACIK)      0001152    NULL         671.44000000      
FATURA       S.FATURA(ACIK)      0001181    NULL         135.14000000      

                                                                  TOPLAM  3.573,39
KASA           GELIR                    R106         (Nakit)       750.00000000      
KASA           GELIR                    R176         (Nakit)       250.00000000      
KASA           GELIR                    000913      (K.Karti)     5000.00000000    
KASA           GELIR                    R147         (K.Karti)     250.00000000
                                                                  TOPLAM  6.250    

SELECT 'FATURA' AS BASLIK,
                          (CASE WHEN FI.FTIRSIP = '1' AND FI.TIPI = '1' THEN 'S.FATURA(KAPALI)'
                                 WHEN FI.FTIRSIP = '1' AND FI.TIPI = '2' THEN 'S.FATURA(ACIK)'
                                 ELSE '0' END) AS DURUMU,
FI.CARI_KODU,
--CONVERT(VARCHAR(15),FI.TARIH,104) AS TARIH,
(CONVERT(VARCHAR(50),FI.ACIKLAMA)) AS ACIKLAMA,
FI.GENELTOPLAM,
        (    SELECT SUM(T1.GENELTOPLAM) FROM TBLFATUIRS T1
            WHERE t1.tarih <= FI.tarih
        ) AS KumulatifToplam
FROM TBLFATUIRS FI
GROUP BY
FI.FTIRSIP,
FI.CARI_KODU,
--CONVERT(VARCHAR(15),FI.TARIH,104),
CONVERT(VARCHAR(50),FI.ACIKLAMA),
FI.GENELTOPLAM,
FI.TIPI,
FI.TARIH
UNION ALL ------  KASA İŞLEMLERİ  --------------
SELECT 'KASA' AS BASLIK,
                       (CASE WHEN KS.IO='G' THEN 'GELIR'  
                             WHEN KS.IO='C' THEN 'GIDER' ELSE '0' END) AS DURUMU,
CONVERT(VARCHAR(15),KS.KOD) AS CARI_KODU,
--CONVERT(VARCHAR(15),KS.TARIH,104) AS TARIH,
(CONVERT(VARCHAR(50),KS.ACIKLAMA)) AS ACIKLAMA,
KS.TUTAR,
        (    SELECT SUM(T1.TUTAR) FROM TBLKASA T1
            WHERE t1.tarih <= KS.tarih
        ) AS TOPLAM
FROM TBLKASA KS
WHERE KS.TARIH BETWEEN '2019-01-01' AND '2019-01-10'
GROUP BY
CONVERT(VARCHAR(50),KS.ACIKLAMA),
--CONVERT(VARCHAR(15),KS.TARIH,104),
CONVERT(VARCHAR(15),KS.KOD),
KS.IO,
KS.TUTAR,
KS.TARIH
Cevapla
#2
Merhaba,

Tablolarınızın SQL ( CREATE ) kodlarını da paylaşır mısınız? Bu gibi durumlarda tablo yapınızı anlamak çözümü beraberinde getirebilir.
Serhat YANALAK - FMX Software Developer
Cevapla
#3
(10-05-2024, Saat: 16:31)Mr.X Adlı Kullanıcıdan Alıntı: Merhaba,

Tablolarınızın SQL ( CREATE ) kodlarını da paylaşır mısınız? Bu gibi durumlarda tablo yapınızı anlamak çözümü beraberinde getirebilir.

TBLFATUIRS

CREATE TABLE [dbo].[TBLFATUIRS](
 [SUBE_KODU] [dbo].[TDBSMALLINT] NOT NULL,
[FTIRSIP] [char](1) NOT NULL,
[FATIRS_NO] [dbo].[TDBBELGENO] NOT NULL,
[CARI_KODU] [dbo].[TDBCARIKOD] NOT NULL,
[TARIH] [dbo].[TDBDATETIME] NOT NULL,
[TIPI] [dbo].[TDBBYTE] NULL,
[BRUTTUTAR] [dbo].[TDBFLOAT] NULL,
[SAT_ISKT] [dbo].[TDBFLOAT] NULL,
[MFAZ_ISKT] [dbo].[TDBFLOAT] NULL,
[GEN_ISK1T] [dbo].[TDBFLOAT] NULL,
[GEN_ISK2T] [dbo].[TDBFLOAT] NULL,
[GEN_ISK3T] [dbo].[TDBFLOAT] NULL,
[GEN_ISK1O] [dbo].[TDBFLOAT] NULL,
[GEN_ISK2O] [dbo].[TDBFLOAT] NULL,
[GEN_ISK3O] [dbo].[TDBFLOAT] NULL,
[KDV] [dbo].[TDBFLOAT] NULL,
[FAT_ALTM1] [dbo].[TDBFLOAT] NULL,
[FAT_ALTM2] [dbo].[TDBFLOAT] NULL,
[ACIKLAMA] [varchar](20) NULL,
[KOD1] [char](1) NULL,
[KOD2] [char](1) NULL,
[ODEMEGUNU] [dbo].[TDBSMALLINT] NULL,
[ODEMETARIHI] [dbo].[TDBDATETIME] NULL,
[KDV_DAHILMI] [char](1) NULL,
[FATKALEM_ADEDI] [dbo].[TDBSMALLINT] NULL,
[SIPARIS_TEST] [dbo].[TDBDATETIME] NULL,
[TOPLAM_MIK] [decimal](15, 5) NULL,
[TOPDEPO] [dbo].[TDBSMALLINT] NULL,
[YEDEK22] [varchar](2) NULL,
[CARI_KOD2] [dbo].[TDBCARIKOD] NULL,
[YEDEK] [char](1) NULL,
[UPDATE_KODU] [char](1) NULL,
[SIRANO] [dbo].[TDBINTEGER] NOT NULL,
[KDV_DAHIL_BRUT_TOP] [dbo].[TDBFLOAT] NULL,
[KDV_TENZIL] [dbo].[TDBFLOAT] NULL,
[MALFAZLASIKDVSI] [dbo].[TDBFLOAT] NULL,
[GENELTOPLAM] [dbo].[TDBFLOAT] NULL,
[YUVARLAMA] [dbo].[TDBFLOAT] NULL,
[SATIS_KOND] [varchar](4) NULL,
[PLA_KODU] [dbo].[TDBPLASIYER] NULL,
[DOVIZTIP] [dbo].[TDBBYTE] NULL,
[DOVIZTUT] [dbo].[TDBFLOAT] NULL,
[KS_KODU] [varchar](8) NULL,
[BAG_TUTAR] [dbo].[TDBFLOAT] NULL,
[YEDEK2] [varchar](7) NULL,
[HIZMET_FAT] [char](1) NULL,
[VADEBAZT] [dbo].[TDBDATETIME] NULL,
[KAPATILMIS] [char](1) NULL,
[S_YEDEK1] [dbo].[TDBBELGENO] NULL,
[S_YEDEK2] [varchar](8) NULL,
[F_YEDEK3] [dbo].[TDBFLOAT] NULL,
[F_YEDEK4] [dbo].[TDBFLOAT] NULL,
[F_YEDEK5] [dbo].[TDBFLOAT] NULL,
[C_YEDEK6] [char](1) NULL,
[B_YEDEK7] [dbo].[TDBBYTE] NULL,
[I_YEDEK8] [dbo].[TDBSMALLINT] NULL,
[L_YEDEK9] [dbo].[TDBINTEGER] NULL,
[AMBAR_KBLNO] [varchar](15) NULL,
[D_YEDEK10] [dbo].[TDBDATETIME] NULL,
[PROJE_KODU] [dbo].[TDBPROJEKOD] NULL,
[KOSULKODU] [varchar](8) NULL,
[FIYATTARIHI] [dbo].[TDBDATETIME] NULL,
[KOSULTARIHI] [dbo].[TDBDATETIME] NULL,
[GENISK1TIP] [dbo].[TDBSMALLINT] NULL,
[GENISK2TIP] [dbo].[TDBSMALLINT] NULL,
[GENISK3TIP] [dbo].[TDBSMALLINT] NULL,
[EXPORTTYPE] [dbo].[TDBBYTE] NULL,
[EXGUMRUKNO] [varchar](20) NULL,
[EXGUMTARIH] [dbo].[TDBDATETIME] NULL,
[EXFIILITARIH] [dbo].[TDBDATETIME] NULL,
[EXPORTREFNO] [varchar](20) NULL,
[KAYITYAPANKUL] [dbo].[TDBNETSISKUL] NULL,
[KAYITTARIHI] [dbo].[TDBDATETIME] NULL,
[DUZELTMEYAPANKUL] [dbo].[TDBNETSISKUL] NULL,
[DUZELTMETARIHI] [dbo].[TDBDATETIME] NULL,
[GELSUBE_KODU] [dbo].[TDBSMALLINT] NULL,
[GITSUBE_KODU] [dbo].[TDBSMALLINT] NULL,
[ONAYTIPI] [char](1) NOT NULL,
[ONAYNUM] [dbo].[TDBINTEGER] NOT NULL,
[ISLETME_KODU] [dbo].[TDBSMALLINT] NOT NULL,
[ODEKOD] [dbo].[TDBGRUPKOD] NULL,
[BRMALIYET] [dbo].[TDBFLOAT] NULL,
[KOSVADEGUNU] [dbo].[TDBSMALLINT] NULL,
[YAPKOD] [varchar](15) NULL,
[GIB_FATIRS_NO] [varchar](16) NULL,
[EXTERNALAPPID] [varchar](100) NULL,
[EXTERNALREFID] [varchar](100) NULL,
[EBELGE] [dbo].[TDBINTEGER] NULL,
[HALFAT] [dbo].[TDBINTEGER] NULL,
[FAT_ALTM3] [dbo].[TDBFLOAT] NULL,
[DOVBAZTAR] [dbo].[TDBDATETIME] NULL,
[OTVTEVTUTAR] [dbo].[TDBFLOAT] NULL,
[TOPGIRDEPO] [dbo].[TDBSMALLINT] NULL,
[BFORM] [char](1) NULL,
[TEVKIFATIADE] [dbo].[TDBINTEGER] NULL,
[NAKTEVKODU] [char](1) NULL,
[NAKTEVTUTAR] [dbo].[TDBFLOAT] NULL,
[FATURALASMAYACAK] [char](1) NULL,
[KONAKLAMA] [dbo].[TDBINTEGER] NULL,
[SARJFAT] [dbo].[TDBINTEGER] NULL,
CONSTRAINT [TBLFATUIRSPKEY] PRIMARY KEY CLUSTERED 
(
[FTIRSIP] ASC,
[FATIRS_NO] ASC,
[CARI_KODU] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [TIPI]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [BRUTTUTAR]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [SAT_ISKT]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [MFAZ_ISKT]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GEN_ISK1T]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GEN_ISK2T]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GEN_ISK3T]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GEN_ISK1O]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GEN_ISK2O]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GEN_ISK3O]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [KDV]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [FAT_ALTM1]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [FAT_ALTM2]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [ODEMEGUNU]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [FATKALEM_ADEDI]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [TOPLAM_MIK]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [TOPDEPO]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [SIRANO]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [KDV_DAHIL_BRUT_TOP]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [KDV_TENZIL]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [MALFAZLASIKDVSI]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GENELTOPLAM]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [YUVARLAMA]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [DOVIZTIP]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [DOVIZTUT]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [BAG_TUTAR]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [F_YEDEK3]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [F_YEDEK4]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [F_YEDEK5]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [B_YEDEK7]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [I_YEDEK8]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [L_YEDEK9]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GENISK1TIP]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GENISK2TIP]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [GENISK3TIP]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [EXPORTTYPE]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ('A') FOR [ONAYTIPI]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [ONAYNUM]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [BRMALIYET]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [HALFAT]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [FAT_ALTM3]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [OTVTEVTUTAR]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [TOPGIRDEPO]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [TEVKIFATIADE]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [KONAKLAMA]
GO

ALTER TABLE [dbo].[TBLFATUIRS] ADD  DEFAULT ((0)) FOR [SARJFAT]
GO

ALTER TABLE [dbo].[TBLFATUIRS]  WITH CHECK ADD  CONSTRAINT [TBLFATUIRS_FKEY] FOREIGN KEY([SUBE_KODU])
REFERENCES [dbo].[TBLSUBELER] ([SUBE_KODU])
GO

ALTER TABLE [dbo].[TBLFATUIRS] CHECK CONSTRAINT [TBLFATUIRS_FKEY]
GO

ALTER TABLE [dbo].[TBLFATUIRS]  WITH NOCHECK ADD  CONSTRAINT [TBLFATUIRS_FKEY2] FOREIGN KEY([ISLETME_KODU])
REFERENCES [dbo].[TBLISLETMELER] ([ISLETME_KODU])
NOT FOR REPLICATION 
GO

ALTER TABLE [dbo].[TBLFATUIRS] CHECK CONSTRAINT [TBLFATUIRS_FKEY2]
GO

ALTER TABLE [dbo].[TBLFATUIRS]  WITH NOCHECK ADD  CONSTRAINT [TBLFATUIRS_FKEYPROJE] FOREIGN KEY([PROJE_KODU])
REFERENCES [dbo].[TBLPROJE] ([PROJE_KODU])
NOT FOR REPLICATION 
GO

ALTER TABLE [dbo].[TBLFATUIRS] CHECK CONSTRAINT [TBLFATUIRS_FKEYPROJE]
GO

ALTER TABLE [dbo].[TBLFATUIRS]  WITH NOCHECK ADD  CONSTRAINT [TBLFATUIRSYAPKODFKEY] FOREIGN KEY([YAPKOD])
REFERENCES [dbo].[TBLESNYAPMAS] ([YAPKOD])
NOT FOR REPLICATION 
GO

ALTER TABLE [dbo].[TBLFATUIRS] CHECK CONSTRAINT [TBLFATUIRSYAPKODFKEY]
GO



TBLKASA

CREATE TABLE [dbo].[TBLKASA](
 [KSMAS_KOD] [varchar](8) NOT NULL,
[TARIH] [dbo].[TDBDATETIME] NOT NULL,
[FISNO] [varchar](17) NULL,
[IO] [char](1) NOT NULL,
[TIP] [char](1) NOT NULL,
[ACIKLAMA] [varchar](100) NULL,
[TUTAR] [dbo].[TDBFLOAT] NULL,
[CARI_MUH] [char](1) NULL,
[KOD] [varchar](35) NULL,
[DOVIZTUT] [dbo].[TDBFLOAT] NULL,
[KUR] [dbo].[TDBFLOAT] NULL,
[PLASIYER_KODU] [dbo].[TDBPLASIYER] NULL,
[ODEMETURU] [dbo].[TDBINTEGER] NULL,
[UPDATE_KODU] [char](1) NULL,
[ZAMAN] [varchar](8) NULL,
[KULL_ID] [dbo].[TDBSMALLINT] NULL,
[SIRA] [dbo].[TDBINTEGER] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[SUBE_KODU] [dbo].[TDBSMALLINT] NOT NULL,
[KREDI_KART_NO] [varchar](50) NULL,
[KDV_ORAN] [dbo].[TDBKDVORAN] NULL,
[KDV_DAHIL] [char](1) NULL,
[YEDEK1] [varchar](8) NULL,
[YEDEK2] [varchar](8) NULL,
[YEDEK3] [dbo].[TDBFLOAT] NULL,
[YEDEK4] [dbo].[TDBFLOAT] NULL,
[YEDEK5] [dbo].[TDBFLOAT] NULL,
[YEDEK6] [char](1) NULL,
[YEDEK7] [dbo].[TDBBYTE] NULL,
[YEDEK8] [dbo].[TDBSMALLINT] NULL,
[YEDEK9] [dbo].[TDBINTEGER] NULL,
[YEDEK10] [dbo].[TDBDATETIME] NULL,
[PROJE_KODU] [dbo].[TDBPROJEKOD] NULL,
[KAYITYAPANKUL] [dbo].[TDBNETSISKUL] NULL,
[KAYITTARIHI] [dbo].[TDBDATETIME] NULL,
[DUZELTMEYAPANKUL] [dbo].[TDBNETSISKUL] NULL,
[DUZELTMETARIHI] [dbo].[TDBDATETIME] NULL,
[ONAYTIPI] [char](1) NOT NULL,
[ONAYNUM] [dbo].[TDBINTEGER] NOT NULL,
[KAYNAK] [dbo].[TDBBYTE] NULL,
[ENTEGREFKEY] [dbo].[TDBENTKEY] NULL,
[KRTSOZMASINCKEYNO] [dbo].[TDBINTEGER] NULL,
[TAKSIT] [dbo].[TDBSMALLINT] NULL,
[GECERLI] [char](1) NULL,
[BFORMCARIKODU] [dbo].[TDBCARIKOD] NULL,
[REFKOD] [dbo].[TDBREFKOD] NULL,
[INDKDV] [char](1) NULL,
[KASARAPOR_KODU] [varchar](100) NULL,
CONSTRAINT [KASAPKEY] PRIMARY KEY CLUSTERED 
(
[SIRA] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[TBLKASA] ADD  DEFAULT ((0)) FOR [TUTAR]
GO

ALTER TABLE [dbo].[TBLKASA] ADD  DEFAULT ((0)) FOR [DOVIZTUT]
GO

ALTER TABLE [dbo].[TBLKASA] ADD  DEFAULT ((0)) FOR [KUR]
GO

ALTER TABLE [dbo].[TBLKASA] ADD  DEFAULT ('A') FOR [ONAYTIPI]
GO

ALTER TABLE [dbo].[TBLKASA] ADD  DEFAULT ((0)) FOR [ONAYNUM]
GO

ALTER TABLE [dbo].[TBLKASA]  WITH NOCHECK ADD  CONSTRAINT [TBLKASA_FKEY] FOREIGN KEY([KSMAS_KOD])
REFERENCES [dbo].[TBLKASAMAS] ([KSMAS_KOD])
NOT FOR REPLICATION 
GO

ALTER TABLE [dbo].[TBLKASA] CHECK CONSTRAINT [TBLKASA_FKEY]
GO

ALTER TABLE [dbo].[TBLKASA]  WITH NOCHECK ADD  CONSTRAINT [TBLKASA_FKEY1] FOREIGN KEY([SUBE_KODU])
REFERENCES [dbo].[TBLSUBELER] ([SUBE_KODU])
NOT FOR REPLICATION 
GO

ALTER TABLE [dbo].[TBLKASA] CHECK CONSTRAINT [TBLKASA_FKEY1]
GO

ALTER TABLE [dbo].[TBLKASA]  WITH NOCHECK ADD  CONSTRAINT [TBLKASA_FKEYPROJE] FOREIGN KEY([PROJE_KODU])
REFERENCES [dbo].[TBLPROJE] ([PROJE_KODU])
NOT FOR REPLICATION 
GO

ALTER TABLE [dbo].[TBLKASA] CHECK CONSTRAINT [TBLKASA_FKEYPROJE]
GO


Cevapla
#4
(10-05-2024, Saat: 15:17)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba;  SQL' de yazmış olduğum kod da şunu yapmak istiyorum; 

Mesela BASLIK olarak FATURA 
           BASLIK olarak KASA şeklinde UNION ALL Kullanarak rapor aldım fakat dip kısım da ,

FATURA da GENELTOPLAM olan sütünü dip de toplamak 
KASA da TUTAR olan sütünü dip de toplamak 

Bu konuda bana yardımcı olabilecek misiniz?

KumulatifToplam Yanlış toplam yapıyor.

BASLIK          DURUMU            CARI_KODU ACIKLAMA   GENELTOPLAM    
FATURA       S.FATURA(ACIK)      0001030    NULL         921.00000000     
FATURA       S.FATURA(ACIK)      0001047    NULL         1845.55000000    
FATURA       S.FATURA(ACIK)      0001152    NULL         671.44000000      
FATURA       S.FATURA(ACIK)      0001181    NULL         135.14000000      

                                                                  TOPLAM  3.573,39
KASA           GELIR                    R106         (Nakit)       750.00000000      
KASA           GELIR                    R176         (Nakit)       250.00000000      
KASA           GELIR                    000913      (K.Karti)     5000.00000000    
KASA           GELIR                    R147         (K.Karti)     250.00000000
                                                                  TOPLAM  6.250    

SELECT 'FATURA' AS BASLIK,
                          (CASE WHEN FI.FTIRSIP = '1' AND FI.TIPI = '1' THEN 'S.FATURA(KAPALI)'
                                 WHEN FI.FTIRSIP = '1' AND FI.TIPI = '2' THEN 'S.FATURA(ACIK)'
                                 ELSE '0' END) AS DURUMU,
FI.CARI_KODU,
--CONVERT(VARCHAR(15),FI.TARIH,104) AS TARIH,
(CONVERT(VARCHAR(50),FI.ACIKLAMA)) AS ACIKLAMA,
FI.GENELTOPLAM,
        (    SELECT SUM(T1.GENELTOPLAM) FROM TBLFATUIRS T1
            WHERE t1.tarih <= FI.tarih
        ) AS KumulatifToplam
FROM TBLFATUIRS FI
GROUP BY
FI.FTIRSIP,
FI.CARI_KODU,
--CONVERT(VARCHAR(15),FI.TARIH,104),
CONVERT(VARCHAR(50),FI.ACIKLAMA),
FI.GENELTOPLAM,
FI.TIPI,
FI.TARIH
UNION ALL ------  KASA İŞLEMLERİ  --------------
SELECT 'KASA' AS BASLIK,
                       (CASE WHEN KS.IO='G' THEN 'GELIR'  
                             WHEN KS.IO='C' THEN 'GIDER' ELSE '0' END) AS DURUMU,
CONVERT(VARCHAR(15),KS.KOD) AS CARI_KODU,
--CONVERT(VARCHAR(15),KS.TARIH,104) AS TARIH,
(CONVERT(VARCHAR(50),KS.ACIKLAMA)) AS ACIKLAMA,
KS.TUTAR,
        (    SELECT SUM(T1.TUTAR) FROM TBLKASA T1
            WHERE t1.tarih <= KS.tarih
        ) AS TOPLAM
FROM TBLKASA KS
WHERE KS.TARIH BETWEEN '2019-01-01' AND '2019-01-10'
GROUP BY
CONVERT(VARCHAR(50),KS.ACIKLAMA),
--CONVERT(VARCHAR(15),KS.TARIH,104),
CONVERT(VARCHAR(15),KS.KOD),
KS.IO,
KS.TUTAR,
KS.TARIH

Merhabalar,

ROLLUP işinizi çözecektir.

https://www.sqltutorial.org/sql-rollup/

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#5
Merhaba,

Senaryoyu kendi lokal veri tabanımda oluşturmaya çalıştım. ( Toplam esnasındaki "where" şartlarını kaldrdım ) test ettiğimde doğru sonuçlar veriyor hocam.
Tam olarak elimde gerçek veri olmadığı için SQL kodunu baştan yazamadım.

Bir alternatif ;
SUM ( CAST ( T1.GENELTOPLAM AS DECIMAL ( 18, 2 ) ) )


           
Serhat YANALAK - FMX Software Developer
Cevapla
#6
(11-05-2024, Saat: 10:33)Mr.X Adlı Kullanıcıdan Alıntı: Merhaba,

Senaryoyu kendi lokal veri tabanımda oluşturmaya çalıştım. ( Toplam esnasındaki "where" şartlarını kaldrdım ) test ettiğimde doğru sonuçlar veriyor hocam.
Tam olarak elimde gerçek veri olmadığı için SQL kodunu baştan yazamadım.

Bir alternatif ;
SUM ( CAST ( T1.GENELTOPLAM AS DECIMAL ( 18, 2 ) ) )

Teşekkür ederim. Yüreğine sağlık. Bende şöyle bir cümle ile tam istediğim sonucu elde ettim.

SELECT 
    COALESCE(FI.CARI_KODU,'GenelToplam') AS CARI_KODU,
   SUM(FI.GENELTOPLAM) AS GENEL_TOPLAM
FROM
   TBLFATUIRS FI
GROUP BY ROLLUP (FI.CARI_KODU)


Bir türlü kendi cümleme ekleyemedim ;

SELECT 'FATURA' AS BASLIK,  
                           (CASE WHEN FI.FTIRSIP = '1' AND FI.TIPI = '1' THEN 'S.FATURA(KAPALI)'
        WHEN FI.FTIRSIP = '1' AND FI.TIPI = '2' THEN 'S.FATURA(ACIK)'
ELSE '0' END) AS DURUMU,
--FI.CARI_KODU,
CONVERT(VARCHAR(15),FI.TARIH,104) AS TARIH,
(CONVERT(VARCHAR(50),FI.ACIKLAMA)) AS ACIKLAMA,
--FI.GENELTOPLAM,
   COALESCE(FI.CARI_KODU,'GenelToplam') AS CariKodu,
   SUM(FI.GENELTOPLAM) AS GenelToplam
FROM TBLFATUIRS FI
GROUP BY 
FI.FTIRSIP,
ROLLUP(FI.CARI_KODU),
CONVERT(VARCHAR(15),FI.TARIH,104),
CONVERT(VARCHAR(50),FI.ACIKLAMA),
--FI.GENELTOPLAM,
FI.TIPI,
FI.TARIH
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  bir resimden renk kodunu $00584827 seklinde almak sadikacar60 2 157 01-10-2024, Saat: 13:02
Son Yorum: frmman
  PDF dosyasından veri almak Mikdad 11 504 07-09-2024, Saat: 10:51
Son Yorum: mrmarman
  Donanım bilgilerini almak için geliştirilmiş güzel bir proje burakb44 2 472 02-04-2024, Saat: 16:06
Son Yorum: burakb44
  Aktif olan tarayıcıdan URL bilgisi almak eraendless 7 1.104 15-09-2023, Saat: 08:36
Son Yorum: eraendless
  Formda acmadan resim dosyasi renk pixelleri almak sadikacar60 1 521 27-06-2023, Saat: 08:01
Son Yorum: delphiman



Konuyu Okuyanlar: 1 Ziyaretçi