Satırları toplayarak giden sql cümleciği nasıl yazarım
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
Örneklerin neredeyse tamamı işlem no gibi bir mantık üzere kurulu. Sadece Tarih bilgisini kullanarak bu durumu çözemezsiniz. Artık, otomatik artan alan mı kullanırsınız veya her işleme program tarafından bir sıra numarası mı verirsiniz orasını siz bilirsiniz ama tarih değerine ilaveten böyle bir alanla ancak çözüme gidebilirsiniz. Ayrıca bu bilgiyi DBGrid üzerinde değil de raporlama, listeleme gibi bir ortamda gösteriyorsanız bakiye alanına hiç gerek bile yok, bunu o ortamından da rahatlıkla halledebilirsiniz. Tabi DBGrid üzerinde gösterim yapıyorsanız o zaman projenizin, sira no alanı gibi bir yapıya kavuşması şart.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 122
- Kayıt: 31 Tem 2010 06:38
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
SELECT CH.BLKODU,CH.TARIHI,CH.EVRAK_NO,CH.ACIKLAMA,CH.ISL EM_TURU,CH.ENTEGRASYON,CH.FATURA_DURUMU,CH.KPB_BTU T AS BORC,CH.KPB_ATUT AS ALACAK,(SELECT SUM(COALESCE(KPB_BTUT, 0))-SUM(COALESCE(KPB_ATUT, 0)) FROM CARIHR WHERE CARIHR.BLCRKODU=CH.BLCRKODU AND CARIHR.TARIHI <= CH.TARIHI) AS BAKIYE FROM CARIHR CH WHERE (CH.BLCRKODU =149) ORDER BY CH.TARIHI ASC
akınsoft wolvox muhasebe programı kullanıyorum db firebird kodu asp sitede kullanıyorum bayim girdiginde siteye kendi borçunu alacagını görmesi lazım onun için id alanı blkodu olarak geçmekte
SELECT CH.BLKODU,CH.TARIHI,CH.EVRAK_NO,CH.ACIKLAMA,CH.ISL EM_TURU,CH.ENTEGRASYON,CH.FATURA_DURUMU,CH.KPB_BTU T AS BORC,CH.KPB_ATUT AS ALACAK,(SELECT SUM(COALESCE(KPB_BTUT, 0))-SUM(COALESCE(KPB_ATUT, 0)) FROM CARIHR WHERE CARIHR.BLCRKODU=CH.BLCRKODU AND CARIHR.TARIHI <= CH.TARIHI AND CARIHR.blkodu <= CH.blkodu) AS BAKIYE FROM CARIHR CH WHERE (CH.BLCRKODU =149) ORDER BY CH.TARIHI ASC
ekledim zaten fakat sonuç aynı hiç değişmiyor tarihi cıkartıgımda tamamen sapıtıyor. nasıl yapacagımı bulamadım kimsede yardımcı olamadım 2 aydır bunun la ugrasıyorum cıldırdım artık :=)
akınsoft wolvox muhasebe programı kullanıyorum db firebird kodu asp sitede kullanıyorum bayim girdiginde siteye kendi borçunu alacagını görmesi lazım onun için id alanı blkodu olarak geçmekte
SELECT CH.BLKODU,CH.TARIHI,CH.EVRAK_NO,CH.ACIKLAMA,CH.ISL EM_TURU,CH.ENTEGRASYON,CH.FATURA_DURUMU,CH.KPB_BTU T AS BORC,CH.KPB_ATUT AS ALACAK,(SELECT SUM(COALESCE(KPB_BTUT, 0))-SUM(COALESCE(KPB_ATUT, 0)) FROM CARIHR WHERE CARIHR.BLCRKODU=CH.BLCRKODU AND CARIHR.TARIHI <= CH.TARIHI AND CARIHR.blkodu <= CH.blkodu) AS BAKIYE FROM CARIHR CH WHERE (CH.BLCRKODU =149) ORDER BY CH.TARIHI ASC
ekledim zaten fakat sonuç aynı hiç değişmiyor tarihi cıkartıgımda tamamen sapıtıyor. nasıl yapacagımı bulamadım kimsede yardımcı olamadım 2 aydır bunun la ugrasıyorum cıldırdım artık :=)
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
Madem ki asp sitede gösteriyorsun o halde bunu sorguda çözme. Listeyi ekrana getirirken asp kodlarıyla hesaplatarak getirirsen ne sen ne de bilgisayar fazla uğraşmaz. Eğer illaki sorgu diye ısrar eder ve de yapısal olarak projenin kılına dokunamam derseniz o zaman bu kayıtları sanal tabloya transfer edip o sanal tablodaki bakiye alanını doldurup da gösterilebilir. Tabi hızlı ve hafif bir uygulama için, ekrana getirilen listeyi asp kodlarıyla ayarlayıp göstermeniz olacaktır. Özellikle aşırı derecede kayıt ve kullanıcı sayınız olacaksa bu yapıdaki sorgulardan uzak durmakta fayda vardır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 122
- Kayıt: 31 Tem 2010 06:38
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
tamam asp ile yapayım fakat nasıl yapacagımı bulamadım yardımcı olabilme sansın varmı ?
yapmam gerken belli ama fikrim bile yok olsada nasıl yapacagım :=) bir kod örnegi verebilirsen sevinirim kolay gelsin teşekkürler..
yapmam gerken belli ama fikrim bile yok olsada nasıl yapacagım :=) bir kod örnegi verebilirsen sevinirim kolay gelsin teşekkürler..
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
.asp üzerinde hiç çalışmadım ama mantık zor olmasa gerek. Bakye isimli bir değişken tanımlayıp, her satır yazıldığında bu değeri hesaplamak ve bakiye alanında bu değişken değerini yazmak en temel mantık olsa gerek. Genellikle raporlarda bu mantık yürütülmektedir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 122
- Kayıt: 31 Tem 2010 06:38
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
nasıl yapacagımı bulamadım yardım edecek bir arkadaş yokmudur buralarda acep
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
s.a.
sana zahmet birde şu kodu denermisin
hesaplama kısmında blkodu kullanmışsın ama sıralamada kullanmamışsın.
sana zahmet birde şu kodu denermisin
Kod: Tümünü seç
SELECT CH.BLKODU,CH.TARIHI,CH.EVRAK_NO,CH.ACIKLAMA,CH.ISL EM_TURU,CH.ENTEGRASYON,CH.FATURA_DURUMU,CH.KPB_BTU T AS BORC,CH.KPB_ATUT AS ALACAK,(SELECT SUM(COALESCE(KPB_BTUT, 0))-SUM(COALESCE(KPB_ATUT, 0)) FROM CARIHR WHERE CARIHR.BLCRKODU=CH.BLCRKODU AND CARIHR.TARIHI <= CH.TARIHI AND CARIHR.blkodu <= CH.blkodu) AS BAKIYE FROM CARIHR CH WHERE (CH.BLCRKODU =149) ORDER BY CH.TARIHI ASC, CH.blkodu
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
-
- Üye
- Mesajlar: 122
- Kayıt: 31 Tem 2010 06:38
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
malesef denedim onu daha önce denemiştim olmamıştı son bir kez şanşımı deneyeyim dedim ama gene olmadı
tamamen yanlış çıkıyor burda çıldırttı beni bu iş..
30/01/2010--------095729-------Fatura--------1555---------------0-----------1,555.00
27/02/2010--------095801-------Fatura--------2152.5------------0-----------2,152.50
16/03/2010--------2799095-----Çek-------------0-----------2541.24----------2,541.24
20/03/2010--------095857------Fatura---------2953--------------0------------2,564.26
07/04/2010--------405946------Çek-------------0---------------2500----------5,041.24
tamamen yanlış çıkıyor burda çıldırttı beni bu iş..
30/01/2010--------095729-------Fatura--------1555---------------0-----------1,555.00
27/02/2010--------095801-------Fatura--------2152.5------------0-----------2,152.50
16/03/2010--------2799095-----Çek-------------0-----------2541.24----------2,541.24
20/03/2010--------095857------Fatura---------2953--------------0------------2,564.26
07/04/2010--------405946------Çek-------------0---------------2500----------5,041.24
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
hatalı çıkmasının sebebi farklı tarihlerdeki farklı fişlerin numaralarının kıyaslanması sadece tarihleri aynı ise fiş numarasına göre kıyas yapılmalı,
sadece ilgili kısımı yazıyorum
birde bu blkodu ney onu tam anlayamadım. onun yerine sanki evrak_no kullanılsaymış gibime geliyor ya neyse, bende karıştırıyor olabilirim.
sadece ilgili kısımı yazıyorum
Kod: Tümünü seç
(
SELECT SUM(COALESCE(KPB_BTUT, 0))-SUM(COALESCE(KPB_ATUT, 0))
FROM CARIHR
WHERE (CARIHR.BLCRKODU=CH.BLCRKODU)
AND (
(CARIHR.TARIHI < CH.TARIHI)
OR (
(CARIHR.TARIHI = CH.TARIHI)
AND
(CARIHR.blkodu <= CH.blkodu)
))
AS BAKIYE
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
Hocam, en azından "CARIHR" tablosunun kayıtlarıyla birlikte bulunduğu veritabanını bizimle paylaşabilir misin?
Zira verilen örneklerle normalde istediğin sonuca rahatlıkla ulaşman gerekiyordu gibi.
Belki gözden kaçan başka birşey vardır.
Kolay gelsin.
Zira verilen örneklerle normalde istediğin sonuca rahatlıkla ulaşman gerekiyordu gibi.
Belki gözden kaçan başka birşey vardır.
Kolay gelsin.
-
- Üye
- Mesajlar: 122
- Kayıt: 31 Tem 2010 06:38
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
o da olmadı bende (0) lar çıkmıyor boş geliyor oraları acaba onunla falan bir ilgisi olabilirmi ??
bu sizin yukarda yazdıgınızın çıktısı bu hep sapıttı
firebird wolvox un db si ekledim sadece carıhr bölümünü dosya acılmassa sql yazarsın dosya uzantısına..
30/01/2010 095729 Fatura 1555 -1,786.72
27/02/2010 095801 Fatura 2152.5 913.83
16/03/2010 2799095 Çek 2541.24 -3,165.84
20/03/2010 095857 Fatura 2953 1,316.44
07/04/2010 095930 Fatura 2500 9,176.20
07/04/2010 405946 Çek 2500 2,269.26
13/04/2010 9361405 Çek 2180 1,939.26
bu sizin yukarda yazdıgınızın çıktısı bu hep sapıttı
firebird wolvox un db si ekledim sadece carıhr bölümünü dosya acılmassa sql yazarsın dosya uzantısına..
30/01/2010 095729 Fatura 1555 -1,786.72
27/02/2010 095801 Fatura 2152.5 913.83
16/03/2010 2799095 Çek 2541.24 -3,165.84
20/03/2010 095857 Fatura 2953 1,316.44
07/04/2010 095930 Fatura 2500 9,176.20
07/04/2010 405946 Çek 2500 2,269.26
13/04/2010 9361405 Çek 2180 1,939.26
- Dosya ekleri
-
- CARIHR.rar
- firebird
- (98.11 KiB) 128 kere indirildi
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
Hocam "CARIHR" tablosunun yapısını da gönderir misin (CREATE TABLE CARIHR (BLKODU INTEGER NOT NULL, .. gibi)? Oluşturup aktarmak için.
-
- Üye
- Mesajlar: 122
- Kayıt: 31 Tem 2010 06:38
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
ekledim kardeş.
- Dosya ekleri
-
- Desktop.rar
- firebird carıhr ve create tablo
- (98.98 KiB) 141 kere indirildi
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
Hocam şu query'i dener misin?
Kod: Tümünü seç
SELECT
CH.BLKODU,
CH.TARIHI,
CH.EVRAK_NO,
CH.ACIKLAMA,
CH.ISLEM_TURU,
CH.ENTEGRASYON,
CH.FATURA_DURUMU,
CH.KPB_BTUT AS BORC,
CH.KPB_ATUT AS ALACAK,
(SELECT COALESCE(SUM(KPB_BTUT), 0) - COALESCE(SUM(KPB_ATUT), 0) FROM CARIHR WHERE CARIHR.BLCRKODU = CH.BLCRKODU AND ((CARIHR.TARIHI < CH.TARIHI) OR (CARIHR.TARIHI = CH.TARIHI AND CARIHR.BLKODU <= CH.BLKODU))) AS BAKIYE
FROM CARIHR CH
WHERE (CH.BLCRKODU = 149)
ORDER BY CH.TARIHI, CH.BLKODU
Re: Satırları toplayarak giden sql cümleciği nasıl yazarım
Pardon hocam, "aslangeri" hocam zaten aynısını vermiş.