En yakın tarihi bulma *Çözüldü...

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
eyalin
Üye
Mesajlar: 126
Kayıt: 09 May 2005 08:08

En yakın tarihi bulma *Çözüldü...

Mesaj gönderen eyalin »

Merhaba kolay gelsin herkese,

Şöyle bir tablom var;

SıraNo Araç Plaka Çıkış Tarihi Dönüş Tarihi
1 34TT34 01.03.09 12:00 01.03.09 13:50
2 34TT34 01.03.09 17:55 01.03.09 18:15
3 34TT34 02.03.09 12:20 02.03.09 16:12 ...

Dışardan vereceğim bir tarihe en yakın ve kendisinden küçük tarihli kaydı nasıl bulabilirim?
Örn:

Kod: Tümünü seç

Declare @aranantarih datetime
Set @aranantarih = 2009-03-01 16:15
Select Max(dönüştarihi) from AracCikis where dönüştarihi<@aranantarih and Plaka= '34TT34'

şeklinde birçok sorguyla denedim ama nafile.Tarih alanlarımda index oluşturmuş durumdayım ama çözemedim.
Şu durumda dışardan verdiğim "2009-03-01 16:15" tarihi ile kendisinden küçük tarihli ilk kaydı bulmam gerekiyor ve bu kayıt haliyle 1 nolu kayıt olmalı ama maalesef :( . Yardımlarınız için şimdiden teşekkürler.
En son eyalin tarafından 20 Mar 2009 12:53 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: En yakın tarihi bulma

Mesaj gönderen conari »

listelerken <= olarak listeleyin.
max yerine TOP 1 kullanın
order by tarih alanı DESC yapın.

Kod: Tümünü seç

Select top 1 dönüştarihi from AracCikis where dönüştarihi<=@aranantarih 
order by dönüştarihi DESC
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
eyalin
Üye
Mesajlar: 126
Kayıt: 09 May 2005 08:08

Re: En yakın tarihi bulma

Mesaj gönderen eyalin »

Sevgili conari çok teşekkürler yardımın için.Kusura bakma henğz yeni deneme fırsatım olduğu için cevabı geç yazıyorum.Aşağıdaki sorgu ile çözüldü.Teşekkürler....

Kod: Tümünü seç

SELECT TOP 1 donustar FROM araccikis WHERE donustar<='2009-03-21 17:15'
AND plaka = '34tt34'
ORDER BY DonusTar DESC
Cevapla