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.
zero_g
Üye
Mesajlar: 56
Kayıt: 11 Şub 2004 11:52

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

Mesaj gönderen zero_g »

Slm arkadaşlar öncelikle cevap veren herkese tşk eder iyi çalışmalar dilerim
firebird 2.1 kullanıyourm benim yapmaya çalıştığım şu
benim bir işlem tablem var
tarih , işlem no , açıklama , brc_tut, alactut diye alanları olan bir tablo ve içeriğindeki kayıtları şu şekilde olsun
------ ------- ----------- -------- --------
01.01__ 1 __ abc __ 100 __ 0
02.01__ 2 __ cccc __ 100 __ 0
05.01__ 3 __ ddddd __ 0 __ 150
07.01__ 4 __ zzzz __ 75 __ 0
07.01__ 5 __ kkkk __ 0 __ 100

şimdi benim yapmak istediğim bu tabloyu listeleryen en sağda bakiye alanı oluşturup sonucu toplayarak gelen bir sqlcümleciği nasıl yapabilirim

tarih , işlem no , açıklama , brc_tut, alactut , bakiye
------ ------- ----------- -------- -------- --------
01.01__ 1 __ abc __ 100 __ 0 __ 100
02.01__ 2 __ cccc __ 100 __ 0 __ 200
05.01__ 3 __ ddddd __ 0 __ 150 __ 50
07.01__ 4 __ zzzz __ 75 __ 0 __ 125
07.01__ 5 __ kkkk __ 0 __ 100 __ 25 şeklinde kayıtların gelmesini istiyorum.
Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

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

Mesaj gönderen Battosai »

select brc_tut, alactut, (alactut-brc_tut) as Bakiye from tablo
zero_g
Üye
Mesajlar: 56
Kayıt: 11 Şub 2004 11:52

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

Mesaj gönderen zero_g »

maalesef bu sql cümlesi işime yaramıyor
test ederek ve anlayarak cevap verirseniz sevinirim
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

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

Mesaj gönderen csunguray »

Şu sayfadaki örneği inceleyin:
http://www.databasejournal.com/features ... Cursor.htm

translate.google.com.tr ile Türkçe'ye çevrilmiş hali:
http://translate.google.com.tr/translat ... l=en&tl=tr

Bu sayfadaki örneğe göre sql kodunuzu oluşturun. İstediğiniz sonucu elde edemezseniz kodu buraya yazın, onun üzerinde tartışalım.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

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

Mesaj gönderen White Rose »

http://www.databasejournal.com/features ... Cursor.htm

select OrderId, OrderDate, O.OrderAmt,(select sum(OrderAmt) from Orders
where OrderID <= O.OrderID) 'Total' from Orders O

burdaki sq kodunu denedim arkadaşlar ama sonuç döndürmedi maalesef, Total kısmı boş geliyor
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

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

Mesaj gönderen csunguray »

Kod: Tümünü seç

select OrderId, OrderDate, O.OrderAmt,(select sum(OrderAmt) from Orders
where OrderID <= O.OrderID) 'Total' from Orders O
Sizin tablonuzdaki alan adları öyle değil ki. Neden kendi yazdığınız SQL kodunu göndermiyorsunuz?
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

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

Mesaj gönderen White Rose »

sql kodu aynı olduktan sonra alan adlarının önemi var mı, kendi tableme göre denedim yine olmadı :)
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

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

Mesaj gönderen csunguray »

Biz verdiğiniz sayfadaki örneğe bakacak olduktan sonra buraya soru sormanızın ne anlamı var ki. Falcılık yapmamızı istiyorsunuz.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

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

Mesaj gönderen White Rose »

soruyu ben sormamıştım aslında, ben sadece yaptığım denemenin sonucunu paylaştım o kadar, üzerinize alınmayın.
denediğim sql kodu

Kod: Tümünü seç

select msh_kod, msh_tar, h.msh_brc,(select sum(msh_brc) from mushar
where msh_kod <= h.msh_kod) Toplam from mushar h
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.
peki olmadı derken....
hatamı verdi
yanlış mı getirdi
hiç mi getirmedi..
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

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

Mesaj gönderen conari »

sıra numarası diye bir alan tutuyorsanız,
bir fonksiyon veya SP yazarsınız.

Kod: Tümünü seç

create function bakiye 
bla bla
sum(miktar) girişler - sum(miktar) cıkışlar from tablo where sirano<='satırdaki sırano'

Kod: Tümünü seç

select kod, giris, cikis, bakiye(kod,sirano) from stoklar
İndex ve hareketlere göre biraz ağır kaçabilir.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

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

Mesaj gönderen csunguray »

Şimdi de ortaya 3. bir sql ifadesi daha çıktı.

Kod: Tümünü seç

select 
  tarih, 
  islem_no, 
  aciklama, 
  brc_tut, 
  alactut, 
  ((select sum(brc_tut) from Table1 T2 where T2.islem_no <= T1.islem_no) - (select sum(alactut) from Table1 T2 where T2.islem_no <= T1.islem_no)) as bakiye 
from 
  Table1 T1
order by
  islem_no
Bu kodun calisacagini umuyorum...
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
pelitt
Üye
Mesajlar: 148
Kayıt: 18 May 2009 10:06

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

Mesaj gönderen pelitt »

sonucu niye yazmamış bu kardeş ya banada lazım oldu şimdi hangisi oluyor nerden bilelim
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 »

Kolları sıvayıp teker teker deneyerek. Hatta çıkarttığın sonucu sen başkaları için de paylaşırsan daha sonra senin gibi arayanlar için klavuz olur.
Ş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


30/01/2010 --- 095729 -------Fatura-------1555-------0------------ 1,555.00
27/02/2010 ----095801-------- Fatura-------2152.5 -----0----------- 3,707.50
16/03/2010-----2799095-------Çek(Müşteri)-----0---- 2541.24------ 1,166.26
20/03/2010 ----095857-------- Fatura--------2953 -------0-----------4,119.26
07/04/2010-----405946--------Çek(Müşteri)-----0---------2500-------4,119.26
07/04/2010-----095930---------Fatura--------2500 --------0----------4,119.26


bu tarih sorununu çözebilecek bir üstat neden yok bu forumda herkezde bir hazır cevap var ama kimse bişi bilmiyor sanırm :D (benim gibi)
Cevapla