• 27-04-2020, 17:38:49
    #1
    Zülfü Mehmet ÖZÇİFÇİ: Selam, mysql de şöyle bir sorgum var, bir aylık verileri çekiyorum :
    SELECT satis, tarih FROM tabloadi WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori ='{$kategorikod}'
    Şimdi bu verilerden en yüksek değeri :
    SELECT MAX(satis) FROM tabloadi WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori ='{$kategorikod}'
    olarak çekebiliyorum
    bak değerin tarih tablosunuda çekmek istiyorum
    SELECT MAX(satis), tarih FROM tabloadi WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori ='{$kategorikod}'
    dediğim zaman ayın ilk değerini çekiyor, fakat max değer ayın 23.04 de
    normalde tarih 25.03 den başlıyor ve ilk değeri alıyor,
    SELECT
    employee_id,
    first_name,
    last_name,
    salary
    FROM
    employees
    WHERE
    salary = (
    SELECT
    MAX(salary)
    FROM
    employees
    );
    şöyle bir örnek var çalışıyor fakat, son 30 günün değerini almak için aşağıdaki kodu kullanıyorum;
    FROM tabloadi WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori ='{$kategorikod}'
    şurayı nasıl entegre edecem bulamadım, yada son 3 günün verilerini alıp max değer ve max değerin tarihini nasıl alabilirim, yada farklı bir yöntem önerebilir misiniz.
  • 27-04-2020, 18:29:01
    #2
    wehwet adlı üyeden alıntı: mesajı görüntüle
    FROM tabloadi WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori ='{$kategorikod}'
    şurayı nasıl entegre edecem bulamadım, yada son 3 günün verilerini alıp max değer ve max değerin tarihini nasıl alabilirim, yada farklı bir yöntem önerebilir misiniz.
    Merhaba, paylaştığınız sorgunun başına
    SELECT satis,tarih
    Where şartının devamına da
    AND satis = (SELECT MAX(satis) FROM tabloAdi)
    koşulunu eklerseniz, en yüksek satışa sahip kayıtın satış miktarını ve tarihini getirir.
  • 28-04-2020, 04:09:07
    #3
    Bunu denedim zaten yine aynı sonucu veriyor.
  • 29-04-2020, 07:09:51
    #4
    with x as (
    SELECT satis, tarih ,row_number() over (order by satis desc) rn
    FROM tabloadi WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori ='{$kategorikod}'
    )
    select satis, tarih from x where rn=1
  • 29-04-2020, 14:26:55
    #5
    Hocam teşekkürler,
    Sonunda şu şekilde çözdüm.
    $mindeger = $db->query("SELECT Min(satis) As satis, min(tarih) As tarih From altin Where tarih >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND kategori = $gelendoviz Group By satis, tarih Order By satis ASC Limit 1")->fetch(PDO::FETCH_ASSOC);
       $makdeger = $db->query("SELECT Max(satis) As satis, Max(tarih) As tarih From altin Where tarih >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) AND kategori = $gelendoviz Group By satis, tarih Order By satis Desc Limit 1")->fetch(PDO::FETCH_ASSOC);
  • 01-05-2020, 06:19:28
    #6
    SELECT satis, tarih FROM tabloadi WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori ='{$kategorikod}'
    order by satis desc limit 1