Tabloda toplam alma Biraz farklı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

Tabloda toplam alma Biraz farklı

Mesaj gönderen kuntay »

Bir tablom var tablomda ki kayıtlar

No Tarih Döküman Başlatılan Sayfa Biten Sayfa
---- ----------- ----------- ------------------- --------------
1 01/01/2005 Selam.Doc 1 3
1 01/01/2005 Selam.Doc 1 4
1 01/01/2005 Selam.Doc 3 6
1 01/01/2005 Selam.Doc 5 6
1 01/01/2005 Selam.Doc 6 6

2 01/01/2005 ALi.Doc 1 2
2 01/01/2005 Ali.Doc 4 6
2 01/01/2005 Ali.Doc 6 8
2 01/01/2005 Ali.Doc 7 8

Şimdi çıktı kayıtlarını kontrol eden bir program yazıyorum bir print yapılınca yukardaki gibi print olayları başlatılıyor. No da 1 yazan selam.doc 6 sayfalık bir çıktı ikinci ali çıktısı 8 sayfalık bir çıktı ben tablodan kayıtları çekince böyle şimdi 01/01/2005 tarihindeki toplam çıktı sayısını nasıl alabilirim yani 6 + 8 toplam 14 sayfa çıktı oluyor ama bunu nasıl hesaplata bilirim :(
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Kod: Tümünü seç

select sum(Başlatılan Sayfa - Biten Sayfa+1) from tablo where tarih='01.01.2005'
benim hesabıma göre daha fazla ediyor
Tarih: Prş Nis 06, 2006 3:20 Mesaj konusu: Tabloda toplam alma Biraz farklı

--------------------------------------------------------------------------------

Bir tablom var tablomda ki kayıtlar

No Tarih Döküman Başlatılan Sayfa Biten Sayfa
---- ----------- ----------- ------------------- --------------
1 01/01/2005 Selam.Doc 1 3 //3 sayfa burdan
1 01/01/2005 Selam.Doc 1 4 //4 sayfa burdan
1 01/01/2005 Selam.Doc 3 6 //4 sayfa burdan
1 01/01/2005 Selam.Doc 5 6 //2 sayfa burdan
1 01/01/2005 Selam.Doc 6 6 //1 sayfa burdan

2 01/01/2005 ALi.Doc 1 2 //2 sayfa
2 01/01/2005 Ali.Doc 4 6 //2 sayfa
2 01/01/2005 Ali.Doc 6 8 //...
2 01/01/2005 Ali.Doc 7 8
14'den fazla çıkacaktır. Yada tam olarak ne istediğini anlayamadım
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

Mesaj gönderen kuntay »

Şimdi selam.doc 6 sayfalık ali.doc da 8 sayfa olan bir belge

1 01/01/2005 Selam.Doc 1 3 //burda o an yazılan sayfalar
1 01/01/2005 Selam.Doc 1 4 //burda o an yazılan sayfalar
1 01/01/2005 Selam.Doc 3 6 //burda o an yazılan sayfalar
1 01/01/2005 Selam.Doc 5 6 //burda o an yazılan sayfalar
1 01/01/2005 Selam.Doc 6 6 // Son sayfaya gelindi 6 - 6 tamam

2 01/01/2005 ALi.Doc 1 2 //burda o an yazılan sayfalar
2 01/01/2005 Ali.Doc 4 6 //burda o an yazılan sayfalar
2 01/01/2005 Ali.Doc 6 8 //burda o an yazılan sayfalar
2 01/01/2005 Ali.Doc 7 8 //// Son sayfaya gelindi 7 - 8 tamam

Yani burda
1 01/01/2005 Selam.Doc 6 6 // Son sayfaya gelindi 6 - 6 tamam
2 01/01/2005 Ali.Doc 7 8 //// Son sayfaya gelindi 7 - 8 tamam

bana lazım olan son satırlardaki bilgiler diğer satırlar gereksiz bilgiler
Son satırlardaki son sayfa bilgileri

1. çıktıdaki son satırın son sayfasındaki 6
2. çıktıdaki son satırının son sayfasındaki 8 in toplamı
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Mesaj gönderen sevgi_kelbas »

eğer bir procedure yazabiliyorsan

Kod: Tümünü seç

select d1.No,sum(d1.sayfa) from dosyaAdı d1
where d1.tarih=(select max(d2.Tarih) from DosyaAdi d2 where d2.No=D1.No)
Group By d1.No
Bu bilgileri döngü ile toplatabilirsin..

Not: Bilgi paylaşımınız için teşekkürler. Bilginin daha anlaşılabilir olması için kodlamaları [ code ] ... [ /code ] tag ları içinde yazalım :!: rsimsek
Kullanıcı avatarı
kuntay
Üye
Mesajlar: 86
Kayıt: 08 Tem 2003 09:41
Konum: İçel
İletişim:

Mesaj gönderen kuntay »

Kodda bi yanlışlık varmı ben tam olarak burda ne yapmak istediğinizi anlayamadım yardımınız için çok teşekkür ederim.

Bana kodu açabilirsen sevinirim.
Ol deyince olduran Gönüllerimizi imanla dolduran
Yüce Allahın doksandokuz ismi ile.. Selamın Aleyküm
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Mesaj gönderen sevgi_kelbas »

select d1.No,sum(d1.sayfa) from dosyaAdı d1
where d1.tarih=(select max(d2.Tarih) from DosyaAdi d2 where d2.No=D1.No)
Group By d1.No


Burda yapılan No gruplamasına göre her bir no grubunun en büyük tarihli kaydının sayfa toplamını alıyor..
sevgi_kelbas
Üye
Mesajlar: 37
Kayıt: 03 Nis 2006 04:46

Mesaj gönderen sevgi_kelbas »

Pardon tarihler aynı imiş ben farketmemişim bunu kodu şu şekilde düzeltebiliriz.

select d1.No,sum(d1.sayfa) from dosyaAdı d1
where d1.Dokuman=(select max(d2.dokuman) from DosyaAdi d2 where d2.No=D1.No)
Group By d1.No
Cevapla