Konuyu görüntüle
IUCODERS FORUM > Programlama > Veritabanları > sql sorgusu
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
18.09.2006-10:47 #10046
Selam arkadaşlar

tem_kod bolge_kod bsl_tarih
-------------------------------------
51 A 14.09.2006
51 A 11.09.2006
51 B 13.09.2006
51 B 10.09.2006
51 B 08.09.2006
51 C 14.09.2006
51 C 11.09.2006
51 D 15.09.2006
51 D 10.09.2006
51 D 08.09.2006

Burada yazılacak bir sorguyla

51 A 14.09.2006
51 B 13.09.2006
51 C 14.09.2006
51 D 15.09.2006

gelmesını istiyorum yani bölge kodlarına göre bakarsak ilk row lar
not:bolge kodları vt de a-z ye kadar mevcut ama ben bu kadarını yazıdm





Zoru severim, imkans?z vakit al?r..




Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
18.09.2006-12:43 #10047
her bolge_kod a ait en güncel tarihi içeren kaydı almaya çalışıyorsun sanırım. oyle ise.

select tem_kod , bolge_kod , max( bsl_tarih ) as tarih from tablo group by bolge_kod;
emin değilim olabilir.

not: konu başlıklarını daha açıklayıcı yazıver.





N/A
Yazar
aliolci


avatar
en dipten taa derind
Kayıt: 19.01.2006
18.09.2006-13:26 #10050
sorunu tam anlayamadm ama eğer veri,leri sadece bolge kodlarıa(harflere) gore sıralatmak istiosan

SELECT * FROM tablo ORDER BY bolge_kod ASC





Cant you see the writing on the wall?
"die young gonna die young"
So! Live for today
Tomorrow never comes..

Yazar
kellad


avatar
istanbul
Kayıt: 21.01.2006
18.09.2006-13:41 #10051
max() kullanınca group by şart değil miydi?
Bence bu iş için bütün tabloyu önce bölge koduna sonra istediğimiz kritere göre sıralayıp daha sonra da adım adım işleyerek ilk kayıtları geçici başka bir tabloya alırız sonra da bu tabloyu sunuç olarak döndürürüz.
Ah bir de SQL kodlarına hakim olsam hemen şuraya yazardım kodu ama biraz uğraşmam lazım. Şimdilik bu fikirle idare edin.





Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
Yazar
ali


avatar
istanbul
admin
Kayıt: 04.01.2006
18.09.2006-14:49 #10052
kellad yazdi
 
max() kullanınca group by şart değil miydi?


max ve group by aynı anda kullanılmak zorunda deildir.

ne basit çözümler

1- bölge koduna göre gruplayıp tarihe göre sıralayıp en üsttekini yada alttakini(nasıl sıralandıysa) almak
2- gene tarihe göre sıralayıp DISTINCT ile aynı olan bölge kodlarını almamak(en üsttekini alınca diğerlerini almaz)
3- üçe bişey bulamadım biggrin





free software is a matter of liberty, not price. to understand the concept, you should think of free speech, not free beer.
Yazar
ssakinmaz


avatar
Istanbul
Kayıt: 20.01.2006
18.09.2006-15:03 #10054
orhan yazdi [quote]her bolge_kod a ait en güncel tarihi içeren kaydı almaya çalışıyorsun sanırım. oyle ise.

select tem_kod , bolge_kod , max( bsl_tarih ) as tarih from tablo group by bolge_kod;
emin değilim olabilir.


evt en güncel tarihi almaya çalışıyorum fakat gelen tarihler sistem tarihinden küçük olmalı peki bunu nasıl yapabilirim





Zoru severim, imkans?z vakit al?r..




Yazar
mymoonpart


avatar

Kayıt: 05.07.2006
18.09.2006-16:31 #10057
mysql veritabanı kullanıyorsan bsl_tarih<CURDATE() kullanabilirsin. CURDATE() bugunun tarihini veren bi fonksiyon.





Yazar
timur


avatar
İstanbul
Kayıt: 19.01.2006
18.09.2006-18:08 #10067
Sql server kullanıyorsan getdate() fonksiyonu ile şu anki zamanı alabilrisin. Yani sorguna

where bas_tarihi>getdate() ekleyebilirsin.





Hayat varsa umut vard?r...
www.timureroglu.com

Yazar
nihat


avatar
Terasus
Kayıt: 18.01.2006
18.09.2006-19:34 #10069
ssakinmaz yazdi
 
orhan yazdi [quote]her bolge_kod a ait en güncel tarihi içeren kaydı almaya çalışıyorsun sanırım. oyle ise.

select tem_kod , bolge_kod , max( bsl_tarih ) as tarih from tablo group by bolge_kod;
emin değilim olabilir.


evt en güncel tarihi almaya çalışıyorum fakat gelen tarihler sistem tarihinden küçük olmalı peki bunu nasıl yapabilirim


Orhan'a katılıyorumbiggrin biraz değiştirmek lazım:

Select * demeyelim cunku tabloda baska alanlar da olabilir adam bunları istiyor belli kilaughing

select tem_kod , bolge_kod , max( bsl_tarih ) as tarih from tablo_adi where bsl_tarih < sys_date group by tem_kod order by bolge_kod asc

sys_date:(Gecerli sistem tarihi)
Mysql : CURRENT_DATE()
MS Sql Server : GETDATE();
Oracle : sysdate()

ii çalısmalar Serkan.







Yazar
akrep


avatar
Erzincan
Kayıt: 31.05.2006
19.09.2006-19:39 #10092
SELECT DISTINCT Tek_olacak_adi, alan_adi1, alan_adi2 FROM table_ismi ORDER BY siralanacak_alan_adi






Akrep
Yazar
akrep


avatar
Erzincan
Kayıt: 31.05.2006
19.09.2006-19:41 #10093


select distinct bolge_kod, tem_kod, bsl_tarih from ornek_table order by bsl_tarih


benim önerim budur.





Akrep
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb