Mysql MAX Değer Alma

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bektas
    x-files
    x-files's avatar
    Kayıt Tarihi: 06/Eylül/2005
    Erkek

    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.

     

    x-files tarafından 28/Nis/20 17:09 tarihinde düzenlenmiştir

    //Hayat Bazen Tatlıdır//--//Aşıksan vur saza şoförsen bas gaza// https://zulfumehmet.com/ Kişisel bir olay
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lazz
    lazz's avatar
    Kayıt Tarihi: 15/Ekim/2007
    Erkek

    pekı orderla satısı sıralasan ve limit 1 versen olmazmı 

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EmQceR
    EmQceR's avatar
    Kayıt Tarihi: 14/Kasım/2007
    Erkek

    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

    ...
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bektas
    x-files
    x-files's avatar
    Kayıt Tarihi: 06/Eylül/2005
    Erkek
    EmQceR bunu yazdı

    gruop by ve having kullanman lazım hocam

     

    Hocam çok anlamıyorum rica etsem düzenleyebilir misin komutu.


    //Hayat Bazen Tatlıdır//--//Aşıksan vur saza şoförsen bas gaza// https://zulfumehmet.com/ Kişisel bir olay
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bektas
    x-files
    x-files's avatar
    Kayıt Tarihi: 06/Eylül/2005
    Erkek
    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


    //Hayat Bazen Tatlıdır//--//Aşıksan vur saza şoförsen bas gaza// https://zulfumehmet.com/ Kişisel bir olay
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    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

    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bektas
    x-files
    x-files's avatar
    Kayıt Tarihi: 06/Eylül/2005
    Erkek
    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

    //Hayat Bazen Tatlıdır//--//Aşıksan vur saza şoförsen bas gaza// https://zulfumehmet.com/ Kişisel bir olay
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Bilinmeyen
    Bilinmeyen's avatar
    Kayıt Tarihi: 03/Ekim/2005
    Erkek

    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
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    camarade
    ontedi
    ontedi's avatar
    Kayıt Tarihi: 04/Eylül/2005
    Erkek

    SELECT satis, tarih FROM doviz WHERE tarih >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) ORDER BY satis DESC LIMIT 1

    Bu olması lazım.


    Matematikçi ve Yazılımcı. http://www.ontedi.com ve http://www.cizgi.site Siteme beklerim herkesi.
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    EmQceR
    EmQceR's avatar
    Kayıt Tarihi: 14/Kasım/2007
    Erkek
    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 ?

     

    SELECT max(satis),tarih FROM `doviz` WHERE tarih <= concat(curdate() - interval 30 day,' 23:59:59'AND kategori = 1 order by tarih desc

    ...
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    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.


    anlıyorum.
Toplam Hit: 2483 Toplam Mesaj: 12
sql max sorgu