Veri Tabanından Veri Alma

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)
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
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]
 
Katılım
3 Mayıs 2005
Mesajlar
453
Excel Vers. ve Dili
2010 - Eng
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
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
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.
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
Sn, WAKKASSSS,
Çok memnun oldum sql_yaran bir arkadaşımız daha olduğunu öğrenmekten.

hele sql'de case_yaran olduğunu bilmek apayrı.
 
Katılım
3 Mayıs 2005
Mesajlar
453
Excel Vers. ve Dili
2010 - Eng
Ç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
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
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.
 
Katılım
3 Mayıs 2005
Mesajlar
453
Excel Vers. ve Dili
2010 - Eng
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
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
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.
 
Katılım
3 Mayıs 2005
Mesajlar
453
Excel Vers. ve Dili
2010 - Eng
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.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
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
 
Üst