Mysql MAX Değer Alma
-
Selamlar,
SQL ile ilgili bir sorum var,
belirlediğim tabloda en yüksek değeri almak istiyorum, örneğin,
SELECT satis, tarih FROM doviz WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori = 1
yukardakş tabloda çektiğim verilerin en yüksek olan satış değerini ve tarihini almak istiyorum
kodu şu şekilde düzenliyorum fakat veri göstermiyor,
SELECT satis, tarih FROM doviz WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori = 1 AND satis = (SELECT MAX(satis) FROM doviz)
Ne yapabilirim bunu,
Normalde verileri çekebilirim,
Yamak istediğim son 30 günün verisini almak ve bu 30 günlük verilerden maksimum satış değerini tarihi ile birlikte almak.
-
pekı orderla satısı sıralasan ve limit 1 versen olmazmı
-
gruop by ve having kullanman lazım hocam
https://www.db-fiddle.com/ şuraya verileri yüklesende baksak olur mu ?
EmQceR tarafından 28/Nis/20 17:29 tarihinde düzenlenmiştir -
EmQceR bunu yazdı
gruop by ve having kullanman lazım hocam
Hocam çok anlamıyorum rica etsem düzenleyebilir misin komutu.
-
EmQceR bunu yazdı
gruop by ve having kullanman lazım hocam
https://www.db-fiddle.com/ şuraya verileri yüklesende baksak olur mu ?
https://www.db-fiddle.com/f/apKcMeUWvMKRouB6YpdFU8/0 buyur reis
-
SELECT MAX(satis), tarih FROM doviz WHERE tarih >= DATE_ADD(CURRENT_DATE(), INTERVAL -30 DAY) LIMIT 1
ontedi tarafından 28/Nis/20 17:47 tarihinde düzenlenmiştir -
ontedi bunu yazdı
SELECT MAX(satis), tarih FROM doviz WHERE tarih >= DATE_ADD(CURRENT_DATE(), INTERVAL -30 DAY) LIMIT 1
Hocam böyle de tarih olarak ilk tarihi alıyor
Nomalde max değer ayın 28.04 burda 30.03 gösteriyor
SQL dosya :
https://www.dosya.tc/server28/8wod78/doviz.sql.html
x-files tarafından 28/Nis/20 17:59 tarihinde düzenlenmiştir -
hocam ilk komutta satis alanını order by ile büyükten küçüğe doğru sırala
daha sonra bu tabloya tekrar select çekip top 1' i al tamamdır.
edit: tekrar select çekmeye de gerek yok, aşağıdaki gibi olması lazım;
SELECT TOP 1 satis, tarih FROM doviz WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori = 1 ORDER BY satis DESC
Bilinmeyen tarafından 28/Nis/20 18:10 tarihinde düzenlenmiştir -
SELECT satis, tarih FROM doviz WHERE tarih >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) ORDER BY satis DESC LIMIT 1
Bu olması lazım.
-
x-files bunu yazdıEmQceR bunu yazdı
gruop by ve having kullanman lazım hocam
https://www.db-fiddle.com/ şuraya verileri yüklesende baksak olur mu ?
https://www.db-fiddle.com/f/apKcMeUWvMKRouB6YpdFU8/0 buyur reis
şu sorgu bende çalıştı hocam bendeki tarih kosuluyla dener misin ?
-
Yeterli kayıt olmadığından 120 gün yaptım.
https://www.db-fiddle.com/f/apKcMeUWvMKRouB6YpdFU8/4
Tablo tasarımı sıkıntılı. Dolar 10'u bulunca (ki çok uzak bir ihtimal değil), sayıları metin olarak sakladığın için 10 < 9 olacak, ve hatalı sonuçlar alacaksın.
Özetle sayısal değerleri varchar gibi metin saklamak için kullanılması gereken veri türleri ile saklama.