SQL Mizan Sorgusu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

SQL Mizan Sorgusu

Mesaj gönderen erdogan_ozkaya »

Arkadaşlar,

Aşağıdaki kod İle mizan almaya çalışıyorum (daha iyi bir fikri olan söylesin)

yapmak istediğim
hesap - eksi ise "AlacakBakiye" + artı ise "BorcBakiye" nasıl işlerim ?

teşekkürler

Kod: Tümünü seç

SELECT 
HESAP_PLANI.Hesap_Kodu, 
HESAP_PLANI.Hesap_Adi, 

ISNULL(Sum(HESAP_HAREKETLERI.Fis_Genel_Toplami_Borc),0) AS ToplamBorc, 
ISNULL(Sum(HESAP_HAREKETLERI.Fis_Genel_Toplami_Alacak),0) AS ToplaAlacak,


ISNULL(Sum(HESAP_HAREKETLERI.Fis_Genel_Toplami_Borc-HESAP_HAREKETLERI.Fis_Genel_Toplami_Alacak),0) AS BorcBakiye, 

ISNULL(Sum(HESAP_HAREKETLERI.Fis_Genel_Toplami_Alacak-HESAP_HAREKETLERI.Fis_Genel_Toplami_Borc),0) AS AlacakBakiye


FROM HESAP_PLANI LEFT JOIN HESAP_HAREKETLERI 


ON HESAP_PLANI.Hesap_Kodu = HESAP_HAREKETLERI.Muhasebe_Hesabi
GROUP BY HESAP_PLANI.Hesap_Kodu, HESAP_PLANI.Hesap_Adi
ORDER BY Hesap_Kodu;
Kullanıcı avatarı
sunye
Üye
Mesajlar: 105
Kayıt: 24 Ağu 2004 04:49
Konum: izmir

Re: SQL Mizan Sorgusu

Mesaj gönderen sunye »

Case-When yapısını kullanabilirsin.
Bildiğim tek şey, hiç bir şey bilmediğim.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: SQL Mizan Sorgusu

Mesaj gönderen sabanakman »

Kod: Tümünü seç

select Hesap_Kodu, Hesap_Adi, ToplamBorc, ToplamAlacak,
 case when ToplamBorc>ToplamAlacak then ToplamBorc-ToplamAlacak end as BorcBakiye,
 case when ToplamAlacak>ToplamBorc then ToplamAlacak-ToplamBorc end as AlacakBakiye
from (SELECT 
  HESAP_PLANI.Hesap_Kodu,
  HESAP_PLANI.Hesap_Adi,
  ISNULL(Sum(HESAP_HAREKETLERI.Fis_Genel_Toplami_Borc),0) AS ToplamBorc,
  ISNULL(Sum(HESAP_HAREKETLERI.Fis_Genel_Toplami_Alacak),0) AS ToplamAlacak
FROM HESAP_PLANI LEFT JOIN HESAP_HAREKETLERI 
ON HESAP_PLANI.Hesap_Kodu = HESAP_HAREKETLERI.Muhasebe_Hesabi
GROUP BY HESAP_PLANI.Hesap_Kodu, HESAP_PLANI.Hesap_Adi) as mzn
ORDER BY Hesap_Kodu
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: SQL Mizan Sorgusu

Mesaj gönderen erdogan_ozkaya »

hocam, cevabınız için çok teşekkür ederim BorcBakiye,AlacakBakiye eğer null ise 0 yazmasınıda ekleyebilirmisiniz :) teşekkürler
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: SQL Mizan Sorgusu

Mesaj gönderen sabanakman »

Standart isNull veya Coalesce fonksiyonlarından birisini rahatlıkla kullanabilirsiniz.

Kod: Tümünü seç

select Hesap_Kodu, Hesap_Adi, ToplamBorc, ToplamAlacak,
 isNull(case when ToplamBorc>ToplamAlacak then ToplamBorc-ToplamAlacak end,0) as BorcBakiye,
 isNull(case when ToplamAlacak>ToplamBorc then ToplamAlacak-ToplamBorc end,0) as AlacakBakiye
from (SELECT 
  HESAP_PLANI.Hesap_Kodu,
  HESAP_PLANI.Hesap_Adi,
  ISNULL(Sum(HESAP_HAREKETLERI.Fis_Genel_Toplami_Borc),0) AS ToplamBorc,
  ISNULL(Sum(HESAP_HAREKETLERI.Fis_Genel_Toplami_Alacak),0) AS ToplamAlacak
FROM HESAP_PLANI LEFT JOIN HESAP_HAREKETLERI 
ON HESAP_PLANI.Hesap_Kodu = HESAP_HAREKETLERI.Muhasebe_Hesabi
GROUP BY HESAP_PLANI.Hesap_Kodu, HESAP_PLANI.Hesap_Adi) as mzn
ORDER BY Hesap_Kodu
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: SQL Mizan Sorgusu

Mesaj gönderen erdogan_ozkaya »

çok teşekkür ederim :) aynısını yaptım ama olmamıştı :) demek ki bir şeyi atladım
Cevapla