Satırları toplayarak giden sql cümleciği nasıl yazarım

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
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: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen sabanakman »

Ö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. - .
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen haznedarli »

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 :=)
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: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen sabanakman »

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. - .
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen haznedarli »

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..
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: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen sabanakman »

.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. - .
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen haznedarli »

nasıl yapacagımı bulamadım yardım edecek bir arkadaş yokmudur buralarda acep
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen aslangeri »

s.a.
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
hesaplama kısmında blkodu kullanmışsın ama sıralamada kullanmamışsın.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen haznedarli »

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
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen aslangeri »

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

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
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.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen Hakan Can »

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.
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen haznedarli »

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
Dosya ekleri
CARIHR.rar
firebird
(98.11 KiB) 128 kere indirildi
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen Hakan Can »

Hocam "CARIHR" tablosunun yapısını da gönderir misin (CREATE TABLE CARIHR (BLKODU INTEGER NOT NULL, .. gibi)? Oluşturup aktarmak için.
haznedarli
Üye
Mesajlar: 122
Kayıt: 31 Tem 2010 06:38

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen haznedarli »

ekledim kardeş.
Dosya ekleri
Desktop.rar
firebird carıhr ve create tablo
(98.98 KiB) 141 kere indirildi
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen Hakan Can »

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
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Re: Satırları toplayarak giden sql cümleciği nasıl yazarım

Mesaj gönderen Hakan Can »

Pardon hocam, "aslangeri" hocam zaten aynısını vermiş.
Cevapla