sql group by ile tüm satırı çekmek

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
egitim
Üye
Mesajlar: 2
Kayıt: 23 Tem 2005 01:11
Konum: izmir
İletişim:

sql group by ile tüm satırı çekmek

Mesaj gönderen egitim »

Merhabalar,

Arkadaşlar formu baya inceledim, örnekler var ama uygulamada hala çözemedim...

Veri tababı şu şekilde

id--------->primary key
adi-------->tekrarlanan alan
tutari------->tekrarlanan alan
tarih-------->tekrarlana alan

Şimdi benim amacım bu tablodan tam satır bilgisini çekmek, ama bunu yaparken aynı adi taşıyan satırlarda en büyük tarihli kaydı sorguda döndürmek...

Eğer bunu

select adi, max(tarih) from tablo group by adi yapınca çalışıyor ....

Ama bu sorgudan sadece iki kolana ait bilgiler geliyor, ben tüm satırı isityorum.

select id, adi, max(tarih), tutar from tablo group by adi gibi....

formlarda incelediğim group by'ın sonuna diğer alanları eklersem sonuç geliyor ama fazla kayılarla berber, ben sadece bir adı bilgisine sahip en yüksek tarih 'li kayitlarin olduğu satırları istiyorum...

ilginize teşekkürler...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

Kod: Tümünü seç

select * from tablo t1
where tarih = (select max(tarih) from tablo t2 where t1.adi = t2.adi)

tarzında bir kod işinizi gormesi lazım.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
egitim
Üye
Mesajlar: 2
Kayıt: 23 Tem 2005 01:11
Konum: izmir
İletişim:

Mesaj gönderen egitim »

Evet,

İç içe select ile istediğim sonuca tam olarak ulaşdım... Bu sorgu tam olarak işimi görüyor,

Teşekkürler...

Peki bilgi olarak bu group by olayı ile yapmak mümkünmüdür...

sum olayı ile rahat kullanabildim ancak max fonksiyonu ile satır almayı yukarda sizin yazdığınız satırları almayı başaramadım, aslında group by ın formlarda kullanımlarına baktığımda group by 'dan sonra 2 veya daha fazla alan adı kullanılabiliyor, ama veri tekrarı var...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Re: sql group by ile tüm satırı çekmek

Mesaj gönderen sadettinpolat »

egitim yazdı: Şimdi benim amacım bu tablodan tam satır bilgisini çekmek, ama bunu yaparken aynı adi taşıyan satırlarda en büyük tarihli kaydı sorguda döndürmek...
yapmak istediğiniz işlemde her hangi bir gruplama olayı yok bu yüzden group by kullanmak veya kullanarak yapmaya çalışmak gereksiz bir çaba gibi geliyor bana.

yapılabilir mi sorusuna gelirsek
istenilen satırları alabilmek için bir kere group by ifadesine istediğimiz alanların tümünü yazmamız gerekecek bu da istemediğimiz kayıtlarında sonuç listesine yansımasına neden olacak. bu listede yer alan istemediğimiz kayıtlardan da having ifadesini kullanarak kurtulabiliriz.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Cevapla