![]() | |
| | #1 (permalink) |
| Eski Cevizci Üyelik Tarihi: 08/2004
Mesaj: 164
|
Merhaba arkadaşlar,eğer bir tablonun tek kolonunu kullanıyorsam sorgu sonucu eşsiz kayıtların dönmesi için distinct ifadesi işimi görüyor ancak bir tablonun birden çok kolonunu kullanıp distinct ifadesini kullanmak istediğimde distinct yokmuş gibi sonuc alıyorum.Yapmak istediğim; topic_id,author_id,message_date i çekmek ve bunlardan topic_id si eşsiz olan kayıtların dönmesi. "Select distinct topic_id,author_id,message_date From tblThread order by message_date desc" gibi bir ifade denedim ancak neye göre distinct konusunda herhangi bir bildirim yok,haliyle de çalışmadı.Ne dersiniz,nasıl yapabilirim? Bu arada asıl yapmak istediğim olay,webwiz forumda son eklenen yazıların hangi konulara ne zaman ve kimler tarafından eklendiğini gösteren 5 kayıtlık döngü.Bunun için bir kaç tablo açıp kapıyorum,her döngü de rs açmalar vs. performans da düşük olacak,alternatif çözümlere açığım.Teşekkür ederim,iyi çalışmalar |
| | |
| | #2 (permalink) |
| Luke is back... Üyelik Tarihi: 05/2002 Yer: ../Dark_Side
Mesaj: 2,443
|
Ne yapmak istediğini anlayamadım (çok dikkatli okuyacak vaktim yoktu belki ondandır) fakat genel olarak tek bir alana göre gruplama yapıp yanında bir kaç kolon değeri daha istiyorsan bunu group by ile yapabilirsin. Şöyle bi şeyler SELECT id, alan1, alan2, alan3 FROM tablo GROUP BY id ORDER BY alan1 Id değeri eşit olan 5 tane kayıt dönüyorsa bunların sadece birisi alan1 değerine göre sıralanıp alınır. Kusura bakma yanlış bir yanıt da vermiş olabilirim, dediğim gibi dikkatimi toplayamadım, aklıma gelen ilk şeyi yazdım. Kolay gelsin.
__________________ Do or do not. There is no try. |
| | |
| | #3 (permalink) |
| Eski Cevizci Üyelik Tarihi: 08/2004
Mesaj: 164
|
Rica ederim,ne kusuru!Cevabınız için teşekkür ederim.Denemeler yaptım ancak ne yazık ki şimdilik bir sonuç alamadım,group by ifadesini tek başına kullanamıyorum, sum gibi bir fonksiyonla beraber kullanılması gereken bir ifade sanırım.Teşekkür ederim,denemelere devam ediyorum,iyi çalışmalar.
|
| | |
| | #5 (permalink) |
| Eski Cevizci Üyelik Tarihi: 05/2005
Mesaj: 289
|
Distinct ifadesi tekrarlayan satırlar içinden sadece birini döndürür.Dolayısıyla aynı satırdan çok sayıda varsa sen tek bir kolondaki değerlerin tekrar etmseini istemiyo ama diğerleri için tekrar olabilir diyorsan kullanman gereken ifade distinct değil group by olmalıdır. Sorunun çözümü şöyle : select t1.topic_id,max(t1.message_date) message_date into #t from tblthread t1 inner join tblthread t2 on t1.topic_id=t2.topic_id group by t1.topic_id select t.topic_id,t.message_date,author_id from tblthread th inner join #t t on t.topic_id=th.topic_id and t.message_date=th.message_date order by t.topic_id Burdaki ilk ifadeyle her bir konuda gönderilen son mesajın tarihini geçici bir tabloya atıyoruz. Son olarak da ana tabloyala bu geçici tabloyu ilişkilendirip o topic_id de o tarihte mesaj yazan kişinin id bilgisini elde ediyoruz.Hepsi bu kadar |
| | |
| | #6 (permalink) |
| Eski Cevizci Üyelik Tarihi: 08/2004
Mesaj: 164
|
Öncelikle cevaplar için teşekkür ederim, Select distinct(topic_id),author_idmessage_date from tblthread group by topic_id order by message_date" Bu sql cümleciği "You tried to execute a query that does not include the specified expression 'author_id' as part of an aggregate function." Hatasını döndürüyor. select t1.topic_id,max(t1.message_date) message_date into #t from tblthread t1 inner join tblthread t2 on t1.topic_id=t2.topic_id group by t1.topic_id Bu da "Syntax error (missing operator) in query expression 'max(t1.message_date) message_date'. "Hatasını döndürüyor.Ben sql cümleciklerinde nokta söz dizimini kullanmadığım için bu sözdizimi hatasına da dokunamadım,belki çok kolay birşeydir. Cevaplarınız için teşekkür ediyorum,uğraşmaya devam edelim bakalım...İyi çalışmalar dilerim |
| | |
| | #7 (permalink) |
| Eski Cevizci Üyelik Tarihi: 05/2005
Mesaj: 289
|
Ben kendi yolladığım 2 sql i çalıştırdığımda doğru sonucu alıyorum. Ben sql cümleciklerinde nokta söz dizimini kullanmadığım için bu sözdizimi hatasına da dokunamadım,belki çok kolay birşeydir demişsin nokta söz diziminden kastın nedir??? Ayrıca Select distinct(topic_id),author_id,message_date from tblthread group by topic_id order by message_date" Bu sql cümleciği "You tried to execute a query that does not include the specified expression 'author_id' as part of an aggregate function." Hatasını döndürüyor demişsin tabiki . Çünkü gruplama fonksyionu içerisinde kullanmadığın(gruplama fonksiyonları:sum,avg,max vs..) her alanı group by ifadene eklemn gerekir. Diğer ifadeyi de şöyle dene bakalım: select t1.topic_id,max(t1.message_date) AS message_date into #t from tblthread t1 inner join tblthread t2 on t1.topic_id=t2.topic_id group by t1.topic_id |
| | |
| | #8 (permalink) | |
| Cevizci Üyelik Tarihi: 10/2002
Mesaj: 48
| Alıntı:
Çok güzel bu çok işime yaradı peki boş kayıtları çekmemesi için ne yapabilirim | |
| | |
| | #9 (permalink) |
| Cevizci Üyelik Tarihi: 10/2002
Mesaj: 48
|
Çok afedersiniz çok dikkatli incelemeden yazdım ama malesef istediğim olmamış. Durum şu şekilde bir tabloda 5 tane alan var ve ben ve bualaln ların içinde tekrarlı kelime sayısı bir den fazla örnegin 100 tane otomobil var ve her satırı da otomobil adın da sutun var ve marka adın surun var markada da yine örnegin volvo dan 50 satır var ben bu iki işlemi aynı sorgu içinde yaparak sayfa da sıralama sitili yapmak istedim bunu once distinct ile yaptım olmadı GROUP BY ile yaptım oldu ama sadece tek sutuna mudahale edebiliyorum. Otomobil Sutunanna GROUP BY OTOMOBIL yapınca oluyor GROUP BY otomobil,marka yaptıgım da karşıyorlar Bunu nasıl yapabilirim. Saygılarımla. |
| | |
![]() |
| Bookmarks |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konuyu açana göre | Forum | Cevap | En Son Mesaj |
| Windows ile ilgili problem (yardim) | eindoforat | Windows | 5 | 01/01/2007 14:08 |
| Javada for dongusu ile ilgili bir problem... | garalo | Java / JSP | 2 | 15/06/2006 17:58 |
| Dosya upload ile ilgili problem | metoikos | PHP | 2 | 21/11/2005 17:18 |
| mySQL DISTINCT problem | aglia | Veritabanları & SQL | 4 | 20/07/2005 18:50 |
| tr karaktere dönüştürme ile ilgili bi problem | trex | PHP | 1 | 17/09/2004 09:43 |
| Reklamlar & Desteklenenler | |
| Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv | |