qery sum kullanımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

qery sum kullanımı

Mesaj gönderen yusuf »

selam arkadaşlar

Kod: Tümünü seç

Sql.Add('sun(alan1),sum(alan2),sum(alan3)');
guruplama yapacağım alanları çoğalttığımda yani mesela 50 adet toplanmasını istediğim alan var yapamıyorum bu şekilde qery'ye yazabiliyorum fakat kod olarak yazamıyorum yardımcı olurmusunz. teşekkürler.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Birincisinde yazım hatası ile sun(alan1) şeklinde olduğundan olmasın :?: Yoksa sayısal istediğin kadar alanı bir seferde taplatabilirsin... :idea:
Veritabanını ve kullandığın bileşenleri de yazarsan daha isabetli cevaplar gelebilir :idea:
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 »

hocam aslında doğru söylüyorsunuz ben MySql Veritabanı Kullanıyorum
yapmak istediğim şöyleki bir istatistik raporu hazırlıyorum bilgileri girilen hastaların hastalıklar ve yas gurubuna göre toplanarak yazılması
örnek

Hastalığı yaşı bir olan hasta yaşı iki olan hasta
kalp 3 adet 1 adet

yaş gurubu elliye kadar devam ediyor.

ben şöyle kod yazdım

Kod: Tümünü seç

Sql.Add('Select SUM(yası_birolan_hasta),SUM(Yası_iki_olan_hasta),Sum(yası_ucolan_hasta)); yası Atmış beş olanakadar devam ettim
Sql.Add('from istatistik')
GROUP BY Hastalıgı
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

kullandığım bileşen ADOQuery
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

burada yasi_bir_olan, yasi_iki_olan diye bahsettiğin alanlar birer sayısal alan mı?

Doğum tarihleri giriliyorsa bu_yıl - doğum_yılı ifadesinden yaşları bulabilirsin. Eğer doğrudan yaş giriliyorsa;

Kod: Tümünü seç

select yas, count(*) from tablo
group by yas
şeklinde de alt alta toplatıp sıralatabilirsin :idea:
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 »

Hocam aslında dediğiniz şekilde yapılabilirdi fakat raporlamasında sorun çıkıyor ozaman bu yüzden şöyle bir database oluşturdum

hastalığı,yası_bir_olan,yası_iki olana,ayası_uc olan,yası_dort_olan) atmışbeş yaşa kadar uzuyor. girişide hangi yaşdaysa o bölüme bir giriliyor. teşekkürler.
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

Bence bir tablo daha ekle. Ve ona yasi adını ver. Sonra idpk, ve icerik yaz. Sizin ana tablonuza bir alan ekleyip yasiid yap.Bu yasiid ye yasi tablosundaki idpk yi ata. Yoksa sizin yapınız çok uzun ve sağlıklı yapı değil bence.
Hastalıkları da ayrı tabloda tutmalısınız.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Bence de pek uygun bir yapı değil :roll: Yarın yaşlarla ilgili başka bir rapor almaya kalktığında mesela yaşı 20 ile 30 arasında olanlar deyince nasıl bir sorgu oluşturacağını merak ediyorum :?: Doğum tarihinden bulmak zor geliyorsa yaşı tek bir alana gir. Fakat bu sefer de zaman ilerledikçe yaş sabit kalır :!: En doğrusu yaşı doğum tarihinden hesaplanmış alan/calculated field olarak hesaplatman (MySQL de nasıl bilemiyorum :? ). Bu yaşla ilgili tüm sorgularda da kolaylık sağlayacaktır :idea:
En son rsimsek tarafından 04 Eyl 2006 12:59 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
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 »

Sql.Add('Select SUM(yası_birolan_hasta),SUM(Yası_iki_olan_hasta),Sum(yası_ucolan_hasta)); yası Atmış beş olanakadar devam ettim (SUMU Çoğaltamıyormuyuz )Sql.Add('from istatistik')
GROUP BY Hastalıgı


sum çoklu kullanabilsek sorun kalmıyor arkadaşlar.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Emin olmamakla beraber 65 adet sum yazabilmen lazım. Fakat yöntem yada tasarım hatalı :wink:

Not: Tam yazım hatasını düzeltirken cevap yazmışsın :wink:
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 »

arkadaşlar haklısınızda bu istatistik bakılan hastalar hakkında bir hazır form var çıktı alırken sorun oluyor qreport kullanıyorum diğerleri hakkında pek fikrim yok ama bundan sonra başka raporlama arçlarınıda denicem.
turkcanfidan
Üye
Mesajlar: 380
Kayıt: 31 Eki 2005 03:26

Mesaj gönderen turkcanfidan »

65 yaşından sonra öldü mü varsayacağız insanları? Hiçbir veritabanında yaşı diye bir hane olmaz. Recep abinin dediği gibi bir yıl geçince bu alanın bir anlamı da kalmaz. Veritabanında bir hastanın doğum tarihi tutulur, yaşı buradan hesaplanır. İstatistiksel toplamlar raporlama anında gereken bir değer olduğu için kullandığın rapor bileşenine toplatmak daha mantıklı bence. insan yaşı 120-130 u bile bulabildiğine göre 120-130 adet sum komutu gereksiz olur.
yusuf
Üye
Mesajlar: 139
Kayıt: 20 Tem 2005 11:05
Konum: İSTANBUL

Mesaj gönderen yusuf »

arkadaşlar ben olayı yanlış anlattım sanıyorum şöyle anlatayım insanların hangi yaşda dahafazla hangi hastalıklarla karşılaştığını bulabilmek için bir istatistik bu yani yaşın haraketsiz olması gerekiyor birde tabiki 120 - 130 yaşına kadar yaşayan insan olabilir bunlarıda 65 üstü diye genelliyorum
teşekkürler.
Cevapla