none
BAKİYE GÖSTERME RRS feed

  • Soru

  • Arkadaşlar merhabalar. KASA ve KASA_HAREKET adında 2 adet tablom var. KASA_HAREKET tablom kasa tablosuna KASA_K kolonu ile bağlı. Hareket tablom içerisinde para birim kolonum da var. 

    Yapmak istediğim şu . Kasaya hareket eklediğim zaman para birimini de seçiyorum. Örneğin türk lirası , eour vs.

    Kasa listesi gösterirken 

    KASAID-KASA ADI - TOPLAM TL GIRIS - TOPLAM DOVIZ GIRIS , TOPLAM TL CIKIS - TOPLAM DOVIZ CIKIS - TOPLAM TL BAKIYE VE TOPLAM DOVIZ BAKIYE 

    şeklinde bir kasa listesi oluşturmak istiyorum .

    ÇIKTISI

    1-MERKEZ  - 25  - 300 - 10  - 150  - 15 - 150

    2-ŞUBE   - 35  - 300 - 10  - 150  - 25 - 150

    3-ŞUBE 2 - 35  - 300 - 10  - 150  - 25 - 150

    olacak şekilde. şimdiden teşekkürler

    2 Aralık 2016 Cuma 09:24

Yanıtlar

  • with hareketToplam (kasaId, tlGiris, dovizGiris, tlCikis, dovizCikis) as
    (select kasa_k, 
        sum( case when PARABIRIM_K = 18 then GIREN else 0 end  ),
        sum( case when PARABIRIM_K <> 18 then GIREN else 0 end  ),
        sum( case when PARABIRIM_K = 18 then CIKAN else 0 end  ),
        sum( case when PARABIRIM_K <> 18 then CIKAN else 0 end  )
    FROM KASA_HAREKET
    group by KASA_K)
    SELECT k.ID ,
           k.KONUM_K ,
           k.TANIM ,
           k.D_TARIHI ,
           ht.tlGiris ,
           ht.dovizGiris ,
           ht.tlCikis ,
           ht.dovizCikis
    from KASA k
    inner join hareketToplam ht ON ht.kasaId = k.ID; 

    • Yanıt Olarak İşaretleyen sevdaca 3 Aralık 2016 Cumartesi 07:23
    2 Aralık 2016 Cuma 13:34

Tüm Yanıtlar

  • bunları bir görüntü ile gösterirsen yardım edebiliriz hareket tablosunda hangi key var mesela onu yazmamışsın.dhaa açıklayıcı şekilde ifade edersen yardım edilir.
    2 Aralık 2016 Cuma 09:31
  • with hareketToplam (kasaId, tlGiris, dovizGiris, tlCikis, dovizCikis) as
    (select kasa_k, 
        sum( (case when giris = 1 then 1 else 0 end) *
             (case when birim = 1 then tutar else 0 end ) ),
        sum( (case when giris = 1 then 1 else 0 end) *
             (case when birim = 2 then tutar else 0 end ) ),
        sum( (case when giris = 0 then 1 else 0 end) *
             (case when birim = 1 then tutar else 0 end ) ),
        sum( (case when giris = 0 then 1 else 0 end) *
             (case when birim = 2 then tutar else 0 end ) )
    from kasa_hareket
    group by kasa_k)
    select k.kasaId, k.KasaADI, 
    ht.tlGiris, ht.dovizGiris, ht.tlCikis, ht.dovizCikis
    from kasa k
    inner join hareketToplam ht on k.KasaId = ht.KasaId;
    (giris = 1 Giris, giris = 0 Cikis, birim = 1 TL, birim=2 Doviz gibi dusundum).
    2 Aralık 2016 Cuma 11:08
  • CREATE TABLE [dbo].[KASA](
    	[ID] [bigint] IDENTITY(1,1) NOT NULL,
    	[KONUM_K] [bigint] NOT NULL,
    	[TANIM] [nvarchar](50) NOT NULL,
    	[D_TARIHI] [datetime] NULL,
     CONSTRAINT [PK_KASA] PRIMARY KEY CLUSTERED 
    (
    	[ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
     CONSTRAINT [IX_KASA] UNIQUE NONCLUSTERED 
    (
    	[TANIM] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    
    ALTER TABLE [dbo].[KASA] ADD  CONSTRAINT [DF_KASA_D_TARIHI]  DEFAULT (getdate()) FOR [D_TARIHI]
    GO

    CREATE TABLE [dbo].[KASA_HAREKET](
    	[ID] [bigint] IDENTITY(1,1) NOT NULL,
    	[BELGE_NO] [nvarchar](50) NULL,
    	[KASA_K] [bigint] NULL,
    	[BELGE_K] [bigint] NULL,
    	[MUSTERI_K] [bigint] NULL,
    	[PARABIRIM_K] [bigint] NULL,
    	[ISLEM_TARIHI] [datetime] NULL,
    	[GIREN] [money] NULL,
    	[CIKAN] [money] NULL,
    	[ACIKLAMA] [nvarchar](300) NULL,
    	[KULLANICI] [bigint] NULL,
    	[ANAHTAR] [nvarchar](max) NULL,
    	[D_TARIHI] [datetime] NULL,
     CONSTRAINT [PK_KASA_HAREKET] PRIMARY KEY CLUSTERED 
    (
    	[ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    
    GO
    
    ALTER TABLE [dbo].[KASA_HAREKET] ADD  CONSTRAINT [DF_KASA_HAREKET_D_TARIHI]  DEFAULT (getdate()) FOR [D_TARIHI]
    GO
    
    ALTER TABLE [dbo].[KASA_HAREKET]  WITH CHECK ADD  CONSTRAINT [FK_KASA_HAREKET_KASA] FOREIGN KEY([KASA_K])
    REFERENCES [dbo].[KASA] ([ID])
    GO
    
    ALTER TABLE [dbo].[KASA_HAREKET] CHECK CONSTRAINT [FK_KASA_HAREKET_KASA]
    GO

    2 Aralık 2016 Cuma 13:22
  • Kasaları listelerken , kasa hareketlerindeki parabirim_k değerine göre listeleme yapacağım

    varsayalım 2 adet kasam var.

    1 merkez kasa türk lirası bakiye 500 tl diğer bakiye 600

    2 şube kasa türk lirası bakiye 300 diğer bakiye 0

    gibi. Para birimleri tablosunda türk lirasının id değeri 18 

    2 Aralık 2016 Cuma 13:24
  • with hareketToplam (kasaId, tlGiris, dovizGiris, tlCikis, dovizCikis) as
    (select kasa_k, 
        sum( case when PARABIRIM_K = 18 then GIREN else 0 end  ),
        sum( case when PARABIRIM_K <> 18 then GIREN else 0 end  ),
        sum( case when PARABIRIM_K = 18 then CIKAN else 0 end  ),
        sum( case when PARABIRIM_K <> 18 then CIKAN else 0 end  )
    FROM KASA_HAREKET
    group by KASA_K)
    SELECT k.ID ,
           k.KONUM_K ,
           k.TANIM ,
           k.D_TARIHI ,
           ht.tlGiris ,
           ht.dovizGiris ,
           ht.tlCikis ,
           ht.dovizCikis
    from KASA k
    inner join hareketToplam ht ON ht.kasaId = k.ID; 

    • Yanıt Olarak İşaretleyen sevdaca 3 Aralık 2016 Cumartesi 07:23
    2 Aralık 2016 Cuma 13:34