En iyi yanıtlayıcılar
sql veritabanından en son tarihde ekleneni bulma

Soru
-
Merhaba arkadaşlar. sql veritabanındakı eklenen A ürününden en son hangi tarihde (tarih ve saat olarak) ekleneni bulmam lazım. Bunun için böyle bir sorğu yapdım, ama boş geldi. Nasıl düzelde bilirim bu sql cümlesini
select Vahid,Alis,Satis from Buys where cast(Tarix as datetime) = (select max(cast(Tarix as datetime)) from Buys ) and ProductId = @id
Yanıtlar
-
select Vahid,Alis,Satis from Buys where Tarix = (select max(Tarix) from Buys Where ProductId = @id) and ProductId = @id
Bu yukarıda ki senin yaptığın şeyin sorgusu ama şunu da deneyebilirsin en temizi bu olur diye düşündüm
select Top 1 Vahid,Alis,Satis from Buys where ProductId = @id Order By Tarix Desc
Bu sayede tarih büyükten küçüğe sıralanır ve sen 1 kayıt çekerek en büyük kaydı okumuş olursun.
Fullstack Developer
- Yanıt Olarak İşaretleyen vusal.nurehmedov 10 Eylül 2016 Cumartesi 13:32
Tüm Yanıtlar
-
Neden cast yapıyorsunuz alanınız datetime değil mi? yani varchar mı bu durumda alan doğru bir şekilde dönüşmez ise hata alırsınız yani çalışmaz. Ayrıca bu dönüşümü doğru şekilde yapsanız bile iç sorgu da da ProductId yi sorgulamanız gerekir dış sorguda olduğu gibi.
Fullstack Developer
-
-
select Vahid,Alis,Satis from Buys where Tarix = (select max(Tarix) from Buys Where ProductId = @id) and ProductId = @id
Bu yukarıda ki senin yaptığın şeyin sorgusu ama şunu da deneyebilirsin en temizi bu olur diye düşündüm
select Top 1 Vahid,Alis,Satis from Buys where ProductId = @id Order By Tarix Desc
Bu sayede tarih büyükten küçüğe sıralanır ve sen 1 kayıt çekerek en büyük kaydı okumuş olursun.
Fullstack Developer
- Yanıt Olarak İşaretleyen vusal.nurehmedov 10 Eylül 2016 Cumartesi 13:32