Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110

    [Mysql] Select del primo record di una sequenza con la data uguale a quella odierna

    Salve ragazzi, ho una domanda... Sto sbattendo per creare una select.
    Ho una tabella in cui si trovano sequenze di record.
    le sequenze sono raggruppabili per un campo.
    Di queste sequenze ogni singolo record ha una data (sequenziale).
    Io ho bisogno di recuperare il primo record(se presente) della sequenza contenente la data corrispondente a quella odierna.
    spero di essere stato capace di spiegare il mio problema

    campo1--- campo2--- campo3
    record1---- 01/08 ------ 20
    record2---- 02/08 ------ 20
    record3---- 03/08 ------ 20
    record4---- 17/08 ------ 21
    record5---- 18/08 ------ 21
    record6---- 19/08 ------ 21
    record7---- 21/08 ------ 22
    record8---- 22/08 ------ 22
    record9---- 23/08 ------ 22

    essendo oggi 17 vorrei recuperare il record 4
    se invece oggi fosse stato 18 non devo avere nessun risultato
    Forumista Kriptoniano

  2. #2
    Quote Originariamente inviata da HammerFist Visualizza il messaggio
    se invece oggi fosse stato 18 non devo avere nessun risultato

    perché? c'è un record 18/08...

  3. #3
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    SELECT *
    FROM tabella
    WHERE DATE( campo2 ) = CURDATE( )
    GROUP BY campo3
    ORDER BY campo2 ASC
    LIMIT 1

    ho provato ma non funziona
    Forumista Kriptoniano

  4. #4
    che vuol dire "NON FUNZIONA"?????

  5. #5
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    in pratica dallo schema
    campo1--- campo2--- campo3
    record1---- 01/08 ------ 20
    record2---- 02/08 ------ 20
    record3---- 03/08 ------ 20
    record4---- 17/08 ------ 21
    record5---- 18/08 ------ 21
    record6---- 19/08 ------ 21
    record7---- 21/08 ------ 22
    record8---- 22/08 ------ 22
    record9---- 23/08 ------ 22

    oggi (17), il risultato della select sarebbe 1
    domani (18) il risultato della select sarebbe 0, perchè la sequenza 21 del campo3 non inizia il 18 ma bensì il 17
    Forumista Kriptoniano

  6. #6
    come fai a capire che è il primo della sequenza? perché ha la data più bassa? o perché c'è un id da qualche parte?

  7. #7
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    c'è l'id nel campo 3 che raggruppa le sequenze... in questo caso
    campo1--- campo2--- campo3
    record1---- 01/08 ------ 20
    record2---- 02/08 ------ 20
    record3---- 03/08 ------ 20
    record4---- 17/08 ------ 21
    record5---- 18/08 ------ 21
    record6---- 19/08 ------ 21
    record7---- 21/08 ------ 22
    record8---- 22/08 ------ 22
    record9---- 23/08 ------ 22

    c'è la sequenza "21"
    Forumista Kriptoniano

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    secondo me devi fare la select sul minimo valore della data per ogni sequenza
    il campo2 è di tipo data o stringa?

  9. #9
    Utente di HTML.it L'avatar di HammerFist
    Registrato dal
    May 2005
    Messaggi
    1,110
    campo2 data... forse mi conviene fare una prima query con "GROUP BY campo3 ORDER BY campo2 ASC" e successivamente verificare se tra i campo2 ci sia la data corrente
    Forumista Kriptoniano

  10. #10
    sì, due query, con la prima estrai MIN() ... GROUP BY, con la seconda estrai la data corrente

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.