• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Veri Tabanından Veri Alma

  • Konbuyu başlatan Konbuyu başlatan bezl
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Mayıs 2005
Mesajlar
453
Excel Vers. ve Dili
2010 - Eng
Veritabanından bir rapor için excele veri alıyorum.
veritabanındaki bir tabloda aşağıdaki başlıklar var
CLIENTREF DATE_ SIGN AMOUNT TRNET
mesela
clientref : cari kod
date_ : tarih
sign : 0 ve 1 değerleri alıyor (borç, alacak)
amount : YTL değeri
trnet : döviz değeri

1 01.01.2005 0 100,00 50,00
1 02.05.2005 1 50,00 25,00
böyle binlerce hareket var
ben clientreflerin sign'i 0 olanlardan 1 olanların çıkarılarak bakiyelerini elde etmek istiyorum.
yani
Clientref Bakiye(YTL) Bakiye (YTL)
1 50,00 25,00
.
.

gibi nasıl bir kod yazmam lazım

select clientref, sum(amount), sum(TRNET)
 
selam,

her bir hesabın bakiyesini mi bulacaksınız? yoksa tüm tablonun ne kadar bakiyesinin olduğunu mu bulacaksınız? Ben size herbir hesap için vereyim öncelikle tüm tablo içinse bakalım isterseniz.
Kod:
"select clientref, sum(case when sign=1 then (amount*1) when sign=0 then (amount*-1) end) as [TOPLAM BAKİYE] from TABLO 
group by clientref"

İsterseniz bir bakın, sonra değişiklik isterseniz yapalım.

Kolay gelsin. [/code]
 
Kod:
"select clientref, sum(case when sign=1 then (amount*1) when sign=0 then (amount*-1) end) as [TOPLAM BAKİYE] from TABLO 
group by clientref"

Çok teşekkür ederim WAKKASSSS
Bir de buna tarih eklesek parametre olarak verdiğimiz tarih için cari hesapların o günkü (borç-alacak) bakiyesini verde nasıl yapabiliriz.
tarih=? olduğundaki sign=0 tutarından sign=1 tutarını çıkaracak
buna da yardımcı olursanız çok makbule geçecek
 
selam,

belli kriteri elle verdiğimiz düşünürsek;
Kod:
"select clientref, sum(case when sign=1 then (amount*1) when sign=0 then (amount*-1) end) as [TOPLAM BAKİYE] from TABLO
where date<'07.01.2005' 
group by clientref"

06 ocak saat 24 itibariyle bakiyeyi verecektir.
 
Sn, WAKKASSSS,
Çok memnun oldum sql_yaran bir arkadaşımız daha olduğunu öğrenmekten.

hele sql'de case_yaran olduğunu bilmek apayrı.
 
Çok teşekkür ederim ama ben bir önce yaptığımız tablonun yanına bir sütün olarak o cari hesabın bugünün bakiyesini eklemeyi kastettim.
Yani
Cari Hesap Bakiyesi Günlük Bakiyesi
 
Selam,

Sn. bezl ilk tablo zaten normal olarak bugünün bakiyesini verir. Son gün bakiyesi olarak herzaman doğru çalışır. Ne istediğinizi bir parça daha açabilirmisiniz? Gün gün bakiye mi istiyorsunuz? Ya da rica etsem bana minik bir tablo yaparsanız... çıktı nasıl bir şey olacak?

Kolay gelsin.
 
Cari hesap - Son bakiye - Günlük Bakiye
128 - 1.000 - 50
Hesabın kodu , hesabın veritabanındaki bakiyesi, hesabın bugün bakiyesi
 
Sevgili bezl bugünün bakiyesi diye birşey olmaz sanki. Bakiye tektir. Bugün yapılan satışlar-tahsilatlar derseniz onu anlarım. Onu hemen yapabiliriz. Ama bunun için iki sorgu birleştirmek lazım. Kullandığınız Database'de views kullanabiliyormusunuz? daha doğrusu hangi database'i kullanıyorsunuz?

Kolay gelsin.
 
Cari hesaplardan bahsediyoruz ya o cari hesabın bugünkü hareket toplamlarını kastediyorum, buna bakiye demek yanlış oldu belki, bugünün borç hareket toplamı bir sütunda alacak haraketleri toplamları bir sütunda da olabilir veya ikisinin birbirinden çıkmış hali de olur. Parametre verebiliyorsak bir tane tarih hücremiz var onu parametre olarak vereceğiz veremiyorsak getdate() diyebiliriz herhalde.
Microsoft Sql kullanıyoruz.
 
Merhaba

Excele query den raporu indirdikten sonra
iki ayrı sütun tanımlayın
1. sütuna
Borç:eğer(sign hücre referans=1;tutar hücresi referans;0)
2 sütuna
alacak:eğer(sign hücre referans=0;tutar hücresi referans;0)

yazın

sonra özet tablo ile istediğinizi yaparsınız.

Saygılarımla
 
Geri
Üst