iki tarih arasında 0 dan büyük değer alan alanları toplama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hocam bu şekilde çözüm hem karışık hem uzun olur. SP kullan bir değişkende topla :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

evet recep ustam bugün akşama bu işle uğraştım ve asıl meslek işleri ile de tabi. mesai bitimine yakın oturdum sp ve trigerleri aratıp konuları okumaya ama heralde kafa yorulmuş bıraktım. muhakkak yolu vardır ve oluyordur ama sum ile yaptığımı count ile yapamayınca takıntı oldu heralde. sp yolunu araştırıp deneyeceğim. aslında yavaş yavaş oraya kayıyorum abi. projemin sorgularını yapabildiğim kadarı ile sp lere kaydıracağım. çalışmanın yaşı yok hala vücut çalışabiliyorken yapalım bu işi.

teşekkürler saygılarımla
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

Kod: Tümünü seç

select
  (select COUNT(PARMAK_IZI) from RAPORLAR where PARMAK_IZI>0) AS pizisaytop1,
  (select COUNT(AVUC_IZI) from RAPORLAR where AVUC_IZI>0) AS aizisaytop1
from RAPORLAR group by 1,2
bu şekilde deneyin, olmazsa kapatır dükkanı bodruma yerleşirim :? :D
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

olmaaaaaaaaaaaaz daha karpuz kesecez :lol: :lol: :lol:

abi bu saatte bana verdiğin keyften ötürü teşekkür ederim. şu sıralar bize çok lazımsın hemde çooook.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

@mege adminim o iş tamam dükkanıda bodrumu da kurtardık. bizden kurtulamadın yane. :lol:

kene kapatıp gidicem demeyeceksen bir sorum var. sonuc tamam güzel ibexpert sql editörde denedim ve sonucu aldım ama aynı sonucu dört satır olarak veriyor. alt alta dört satır oluşturuyor. bunun sebebi normal mi diye soracaktım. :oops:

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
peki bu işilemi sp ile yapsanız olmazmı.
sp içinde 9 tane query ile sayıları aldırırsınız. veya
for döndüsü içinde tek tek kayıtları okutup 0 dan büyük olanları saydırırsınız.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

@aslan ustam mege adminimi elden kaçırmamak için onun yolu ile tek query sorgusu ile sorunu hallettim ve arkasından yinede sp ile uğraşmaya başladım. fao ustanın tarifine göre bişeyler yapmak istedim ama başaramadım saat de geç olunca bıraktım. ama aklımda raporlamaları sp ile yapmak için uğraşacağım. sizler varken çözülmeyecek sorun yok.

@mege ustamın verdiği kodda anlamadığım tek yer oldu oda aynı sonucu yedi satır olarak vermesi. dokuz alanda toplam alıyor sonucu yedi satır olarak döndürüyor.

query spl si şöyle;

Kod: Tümünü seç

select 
  (select COUNT(PARMAK_IZI) from RAPORLAR where PARMAK_IZI>0) AS pizisaytop1, 
  (select COUNT(AVUC_IZI) from RAPORLAR where AVUC_IZI>0) AS aizisaytop1,
  (select COUNT(BIYOLOJIK) from RAPORLAR where BIYOLOJIK>0) AS biysaytop1,
  (select COUNT(KIMYASAL) from RAPORLAR where KIMYASAL>0) AS kimsaytop1,
  (select COUNT(BALISTIK) from RAPORLAR where BALISTIK>0) AS balsaytop1,
  (select COUNT(BELGE) from RAPORLAR where BELGE>0) AS belsaytop1,
  (select COUNT(SES_GOR_DATA) from RAPORLAR where SES_GOR_DATA>0) AS sgdsaytop1,
  (select COUNT(IZ_INCELEME) from RAPORLAR where IZ_INCELEME>0) AS izincsaytop1,
  (select COUNT(PAR_IZI_LAB) from RAPORLAR where PAR_IZI_LAB>0) AS plabsaytop1

from RAPORLAR WHERE INCTARIHI Between :tarih1 and :tarih2
group by PARMAK_IZI, AVUC_IZI, BIYOLOJIK, KIMYASAL, BALISTIK, BELGE, SES_GOR_DATA, IZ_INCELEME, PAR_IZI_LAB
button.click şöyle,

Kod: Tümünü seç

dm3.delilSayIBQry.Close;
    dm3.delilSayIBQry.ParamByName('tarih1').AsDate:=datetimepicker7.Date;
    dm3.delilSayIBQry.ParamByName('tarih2').AsDate:=datetimepicker8.Date;
    dm3.delilSayIBQry.Open;
birilerine de lazım olabilir diye hepsini yazıyorum. bu işlemin sonucunu ama ibexpert sql editöründe ama delphi tarafı dbgrid içinde aynı sonuçları yedi satır olarak veriyor. şöyleki;

Kod: Tümünü seç

pizi   aizi   biyo.........plab
9      0       4             0
9      0       4             0
...
...
...
...
9      0        4            0
istediğim sonuçları dbtextler içine aldım. sadece kafamı kurcaladı aynı sonuçları niye yedi satır olarak veriyor diye. ezbere gitmemek adına. yaptığım sql ve sp denemelerinde from, as, ',' falan gibi hatalar alıyorum. sanırım parantez virgül gibi elemanları kullanamamak veya yanlış kullanmaktan. zira mege ustanın verdiği kodda select ler paratez ile başlıyor ama kapatma parantezleri yok ben bunları fazla veya eksik yapıyorsam hata veriyor o zamanda trene bakar gibi bakıyorum. ama olacak inşeallah.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
sanırım raporlar tablodan belirttiğin tarih aralığında 7 kayıt var ondan sebep 7 kere döndürüyor.

Kod: Tümünü seç

distinct
sorununu çözebilir.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

@aslan ustam teşekkür ederim, basit bir iş için seni ve diğer ustaları yormuşum. Helallik dilemek vacip oldu heralde.

Saygılarımla
Kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

estağfirullah...
teşekkür mesajları (ve bi Allah Razı Olsun) demeniz benim(ve diğer arkadaşlar) için kafi olacaktır..
hayırlı çalışmalar...
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

ya burada kayıt sayısı kadar kere (nasıl bir cümle anlamadım ama :D ) selecti tekrar edicek, eğer kayıt sayısı artarsa hiçde hoş olmaz. sorgu gereksiz yere çok uzun sürer. sp ile 9 ayrı sorgu yapın bencede. tamam bu kolay ama kötü bir kod :D
2. cisi ise tarihi altta vermişsiniz yanlış sonuç döndürür, içteki select lerinde tarihini atamanız lazım.
kolay gelsin.
.-.-.-.-.-.-.-. ^_^
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

CASE WHEN

veya

UNION

kullanarak bu işlemi gerçekleştirebilirsiniz.

Bunlarla ilgili arama yapınız isterseniz.

İyi çalışmalar.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

@mege ustam inşeallah bodrumdan yazmıyorsundur aksi halde üzülürüm. SP işini iyice gaza getirdiniz akşama ilk işim bu olacak. İç Select lere tarih ataması yaparsam button da sanırım sadece query yi açmak kalacak. Aslan ustamın distinct uyarısı ile sonuç tek satırda dönüyor.

hepinizden Allah Razı olsun. Hakan ustam case ve when olayı sp lerde geçiyor sanırım o konuyu araştıracağım. union olayı bir kaç kez forumda gözüme çarpmıştı aramalarda, iki veya daha fazla tablodan iş yaptığını duydum sanıyorum o yüzden ilgilenmemiştim.

tekrar teşekkür ve saygılarımla
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Merhabalar,

Saat şuan 01:02 ve tavsiyeleriniz üzerine geç kalmış olsamda sp ile bu işi yapmayı sayenizde başardım. Hepinizden Allah Razı olsun. Teşekkü ederim.

Kod: Tümünü seç

CREATE PROCEDURE SP_PARMAK_IZI_SAY (
    TARIH1 DATE,
    TARIH2 DATE)
RETURNS (
    PIZI_ADET INTEGER)
AS
begin
  /* Procedure Text */
  SELECT COUNT(PARMAK_IZI) from raporlar
  WHERE INCTARIHI BETWEEN :TARIH1 AND :TARIH2 AND PARMAK_IZI>0
  into :pizi_adet;
  suspend;
end
Procedure böyle. Delphi tarafında ise ibquery nin sql satırına;

Kod: Tümünü seç

SELECT*FROM SP_PARMAK_IZI_SAY (:TARIH1, :TARIH2) 
ve button onclick events yordamına;

Kod: Tümünü seç

    ibquery1.Close;
    ibquery1.ParamByName('TARIH1').AsDate:=datetimepicker1.Date;
    ibquery1.ParamByName('TARIH2').AsDate:=datetimepicker2.Date;
    ibquery1.OPEN;
    label1.Caption:=inttostr(ibquery1.fieldbyname('PIZI_ADET').asinteger);
yazdım ve sonucu aldım. Adnan ustam ve pek çok diğer ustalarım bu işten zevk alacaksın diyordu. Doğru imiş.

Teşekkürler DelphiTurkiye ve bu foruma gönül verenler.
Kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hocam makale gibi döktürmüşsün ya :lol:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla