Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
yusuf
Üye
Mesajlar: 139 Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL
Mesaj
gönderen yusuf » 11 Eyl 2006 10:00
Kod: Tümünü seç
with DataHASTALIK.IsratistikRaporQry do
begin
Close;
SQL.Clear;
Sql.Add('SELECT HASTALIK_TURU,KAYIT_TARIHI,SUM(BIR_ONIKI_AY_ERKEK),'SUM(BIR_ONIKI_AY_KADIN)'+
'SUM(BIR_YAS_ERKEK),'+'SUM(BIR_YAS_KADIN),'+
'SUM(IKI_YAS_ERKEK),SUM(IKI_YAS_KADIN)'+
'SUM(UC_YAS_ERKEK),SUM(UC_YAS_KADIN),SUM(DORT_YAS_ERKEK),SUM(DORT_YAS_KADIN),'+
'SUM(BES_YAS_ERKEK),SUM(BES_YAS_KADIN),SUM(ALTI_YAS_ERKEK),SUM(ALTI_YAS_KADIN),'+
'SUM(YEDI_ONDORT_YAS_ERKEK),SUM(YEDI_ONDORT_YAS_KADIN),'+
'SUM(ONBES_YIRMIDORT_YAS_ERKEK),SUM(ONBES_YIRMIDORT_YAS_KADIN),'+
'SUM(YIRMIBES_OTUZDORT_YAS_ERKEK),SUM(YIRMIBES_OTUZDORT_YAS_KADIN),'+
'SUM(OTUZBES_KIRKDOKUZ_YAS_ERKEK),SUM(OTUZBES_KIRKDOKUZ_YAS_KADIN),'+
'SUM(ELLI_ELLIDOKUZ_YAS_ERKEK),SUM(ELLI_ELLIDOKUZ_YAS_KADIN),'+
'SUM(ALTMIS_ALTMISDORT_YAS_ERKEK),SUM(ALTMIS_ALTMISDORT_YAS_KADIN),'+
'SUM(ALTMISBES_USTU_ERKEK),SUM(ALTMISBES_USTU_KADIN)'+
'FROM hastalık_istatistik ');
Sql.Add('GROUP BY HASTALIK_TURU');
Open;
end;
Arkadaşlar Çok Sağolun Oldu Çalışıyor.
Şimdi burada tarih aralığında kısıtlayabilirmiyim bu sorguyu.
yusuf
Üye
Mesajlar: 139 Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL
Mesaj
gönderen yusuf » 11 Eyl 2006 10:07
Close;
SQL.Clear;
Sql.Add('select * from randevu where KAYIT_TARIHI>=:baslangic and KAYIT_TARIHI<=:bitis );
ParamByName('baslangic').Asdate :=MonthCalendar1.Date;
ParamByName('bitis').Asdate :=MonthCalendar1.Date;
Prepare;
Open;
Yukarıdaki Sorguya Bunu Ekleyebilirmiyim.
hbahadir
Kıdemli Üye
Mesajlar: 544 Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:
Mesaj
gönderen hbahadir » 11 Eyl 2006 10:30
select kullanımı
Kod: Tümünü seç
Syntax SELECT [TRANSACTION transaction]
[DISTINCT | ALL]
{* | <val> [, <val> …]}
[INTO :var [, :var …]]
FROM <tableref> [, <tableref> …]
[WHERE <search_condition>]
[GROUP BY col [COLLATE collation] [, col [COLLATE collation] …]
[HAVING <search_condition>]
[UNION <select_expr> [ALL]]
[PLAN <plan_expr>]
[ORDER BY <order_list>]
[FOR UPDATE [OF col [, col …]]];
arkadaşlar lütfen bir soru sormadan arama seçeneği ile aratmayı ihmal etmeyelim..
En son
hbahadir tarafından 11 Eyl 2006 10:32 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
naile
Admin
Mesajlar: 1873 Kayıt: 11 Haz 2003 10:11
Mesaj
gönderen naile » 11 Eyl 2006 10:30
group by dan sonra having eklemelisiniz:
Kod: Tümünü seç
...
HAVING KAYIT_TARIHI>=:baslangic and KAYIT_TARIHI<=:bitis
....
yusuf
Üye
Mesajlar: 139 Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL
Mesaj
gönderen yusuf » 11 Eyl 2006 10:35
Arkadaşlar çok teşekkürler. naile hocam çok sağol.
yusuf
Üye
Mesajlar: 139 Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL
Mesaj
gönderen yusuf » 11 Eyl 2006 03:03
naile hocam dediğiniz şekilde yaptım fakat Operation not applicable hatası veriyor
doganzorlu
Kıdemli Üye
Mesajlar: 395 Kayıt: 22 Tem 2004 09:15
Konum: İzmir
İletişim:
Mesaj
gönderen doganzorlu » 11 Eyl 2006 03:25
Selam,
HAVING, sadece group by da belirtilmeyen sahar için kullanılır. Group by da verilen alanlar WHERE içinde verilir.
Yani GROUP BY WHERE ve HAVING birlikte kullanılır bu gibi durumlarda.
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
yusuf
Üye
Mesajlar: 139 Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL
Mesaj
gönderen yusuf » 11 Eyl 2006 03:36
Kod: Tümünü seç
with DataHASTALIK.IsratistikRaporQry do
begin
Close;
SQL.Clear;
Sql.Add('SELECT HASTALIK_TURU,KAYIT_TARIHI,SUM(BIR_ONIKI_AY_ERKEK),'SUM(BIR_ONIKI_AY_KADIN)'+
'SUM(BIR_YAS_ERKEK),'+'SUM(BIR_YAS_KADIN),'+
'SUM(IKI_YAS_ERKEK),SUM(IKI_YAS_KADIN)'+
'SUM(UC_YAS_ERKEK),SUM(UC_YAS_KADIN),SUM(DORT_YAS_ERKEK),SUM(DORT_YAS_KADIN),'+
'SUM(BES_YAS_ERKEK),SUM(BES_YAS_KADIN),SUM(ALTI_YAS_ERKEK),SUM(ALTI_YAS_KADIN),'+
'SUM(YEDI_ONDORT_YAS_ERKEK),SUM(YEDI_ONDORT_YAS_KADIN),'+
'SUM(ONBES_YIRMIDORT_YAS_ERKEK),SUM(ONBES_YIRMIDORT_YAS_KADIN),'+
'SUM(YIRMIBES_OTUZDORT_YAS_ERKEK),SUM(YIRMIBES_OTUZDORT_YAS_KADIN),'+
'SUM(OTUZBES_KIRKDOKUZ_YAS_ERKEK),SUM(OTUZBES_KIRKDOKUZ_YAS_KADIN),'+
'SUM(ELLI_ELLIDOKUZ_YAS_ERKEK),SUM(ELLI_ELLIDOKUZ_YAS_KADIN),'+
'SUM(ALTMIS_ALTMISDORT_YAS_ERKEK),SUM(ALTMIS_ALTMISDORT_YAS_KADIN),'+
'SUM(ALTMISBES_USTU_ERKEK),SUM(ALTMISBES_USTU_KADIN)'+
'FROM hastalık_istatistik ');
Sql.Add('GROUP BY HASTALIK_TURU');
Sql.Add('HAVING KAYIT_TARIHI>=:baslangic and KAYIT_TARIHI<=:bitis')
Doğan Hocam Yanlışlıgı düzeltebilirmisiniz acaba yanlışlık nerede
yusuf
Üye
Mesajlar: 139 Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL
Mesaj
gönderen yusuf » 11 Eyl 2006 03:43
naile hocam having yanlışmı kullanıyorum acaba
rsimsek
Admin
Mesajlar: 4482 Kayıt: 10 Haz 2003 01:48
Konum: İstanbul
Mesaj
gönderen rsimsek » 11 Eyl 2006 03:45
doganzorlu yazdı: ...
HAVING, sadece group by da belirtilmeyen sahar için kullanılır. Group by da verilen alanlar WHERE içinde verilir.
Yani GROUP BY WHERE ve HAVING birlikte kullanılır bu gibi durumlarda.
Hocam bir yanlışlık olmasın
Kod: Tümünü seç
select alan_adi, count(*) from tablo
group by alan_adi
having count(*) > 5
satır sayısı 5 den büyük olanları ver şeklinde de diğer şekilde de (olan alanın kıyaslanması vs.) kullanabiliyoruz.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
yusuf
Üye
Mesajlar: 139 Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL
Mesaj
gönderen yusuf » 11 Eyl 2006 03:56
Hocam Hastalık türüne göre guruplama ya kadar oldu fakat ben tarih aralığında sınırlama yapmak istiyorum Where ile olmadı naile hocam having le yapılması gerekli dedi denedim yine olmadı
Sql.Add('GROUP BY HAVİNG HASTALIK_TURU KAYIT_TARIHI>=:baslangic and KAYIT_TARIHI<=:bitis'); Bu şekildemi kullanmam gerekiyor.
rsimsek
Admin
Mesajlar: 4482 Kayıt: 10 Haz 2003 01:48
Konum: İstanbul
Mesaj
gönderen rsimsek » 11 Eyl 2006 04:08
yusuf yazdı: ...
Sql.Add('GROUP BY HAVİNG HASTALIK_TURU KAYIT_TARIHI>=:baslangic and KAYIT_TARIHI<=:bitis'); Bu şekildemi kullanmam gerekiyor.
hatalı kullanmışsın ve HAVİNG (büyük i li olmuş)
İstersen HAVING kullanmayıp;
Kod: Tümünü seç
Sql.Add('WHERE KAYIT_TARIHI>=:baslangic and KAYIT_TARIHI<=:bitis');
şeklinde de kullanabilirsin
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
hbahadir
Kıdemli Üye
Mesajlar: 544 Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:
Mesaj
gönderen hbahadir » 11 Eyl 2006 04:09
yukarıda select syntax'ını yazmıştım where ' i doğru yere mi yazıyorsunuz?
yusuf
Üye
Mesajlar: 139 Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL
Mesaj
gönderen yusuf » 11 Eyl 2006 04:16
Sql.Add('WHERE KAYIT_TARIHI>=:baslangic and KAYIT_TARIHI<=:bitis'); Bu şekilde yaptığımda
Operation not applicable hatası veriyor hocam
hbahadir
Kıdemli Üye
Mesajlar: 544 Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:
Mesaj
gönderen hbahadir » 11 Eyl 2006 04:37
bu satırı group by ın neresine yazıyorsun, parametreleri gönderiyor musun?