• 15-02-2020, 15:36:23
    #1
    Merhaba aynı güne ati günlük yaklaşık 35-40 kayıt oluyor, ben veriler, yıl-ay-gün ve saat olarak kayıtlı, ben bu haftada sadece haftalık verilerden bir tanesini çekmek istiyorum, örneğin o günün son kaydını, aynı şekilde ay olarak ta çekmek istiyorum, bunu nasıl bir sorgu ile yapabilirim,
    Örneğin
    Günlük
    SELECT * FROM tabloadiWHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 1 DAY ) AND kategori = $doviz ORDER BY tarih ASC
    veya
    SELECT * FROM tabloAdi WHERE DAY(tarih) = DAY(CURDATE());

    Haftalık
    SELECT * FROM tabloadiWHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 7 DAY ) AND kategori = $doviz ORDER BY tarih ASC
    veya
    SELECT * FROM tabloAdi WHERE WEEK(tarih) = WEEK(CURDATE());

    Aylık
    SELECT * FROM tabloadiWHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) AND kategori = $doviz ORDER BY tarih ASC
    veya
    SELECT * FROM tabloAdi WHERE MONTH(tarih) = MONTH(CURDATE());

    Şimdi bu şekilde tüm kayıtlar listeleniyor, o güne ait 35-40 kayıt aya vurunca da baya bir kayıt oluyor, bunun içinden sadece birer gün olacak şekilde, örneğin haftada sadece hafta içi günleri (pazartesiden cuma gününe kadar), ayda sadece hafta içi günleri (pazartesiden cuma gününe kadar) gibi,

    Teşekkürler.
  • 15-02-2020, 15:47:17
    #2
    limit 0,1 diye ekleyerek 1tane kayıt çekebilirsin. asc yerinede desc kullanırsan son ekleneni almış olursun
  • 15-02-2020, 16:20:24
    #3
    TuorElanesse adlı üyeden alıntı: mesajı görüntüle
    limit 0,1 diye ekleyerek 1tane kayıt çekebilirsin. asc yerinede desc kullanırsan son ekleneni almış olursun
    Cevabınız için teşekkürler, fakat bu şekilde en son eklenen veriyi çeker, ben o hafta içindeki pazartesiden 1 tane salıdan 1 tane, ... cumadan 1 tane veri çekmesini istiyorum.
    SELECT * FROM
    (SELECT * FROM doviz WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 7 DAY ) AND kategori = 1 ORDER BY tarih ASC
    ) AS T WHERE kategori = 1 AND id %20 = 1 şöyle bir komut ile geçici bir çözüm buldum, kalıcı birşey aramaya devam ediyorum.