Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Query, devo calcolare le notti

    Non ho il campo notti nel db ma me le conto tramite la query, ora voglio mostrare solo chi fa 3 notti o superiore, come posso fare modificando questa query?

    Codice PHP:
    $sql "select id, nome, cognome, hotel, DATE_FORMAT(data_arrivo, '%d/%m/%Y') AS data_arrivo, DATE_FORMAT(data_partenza, '%d/%m/%Y') AS data_partenza, data_arrivo as arrivo, DATE_FORMAT(data, '%d/%m/%Y') AS data, to_days(data_partenza) - to_days(data_arrivo) as diff, persone, giro_isola, giro_isola_barca, gita_capri, gita_procida from gestione where data_arrivo between curdate() and curdate() + interval 7 day and storico !='3' order by arrivo, hotel"
    quel diff mi conta le notti infatti nel while lo metto.
    pero' nel where devo mettere qualcosa tipo "and diff >='3' "

    Come posso fare?
    Mai dire Mai

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select *,datediff(data_partenza,data_arrivo) as diff
    from tabella
    having diff >= 3

  3. #3
    Originariamente inviato da nicola75ss
    codice:
    select *,datediff(data_partenza,data_arrivo) as diff
    from tabella
    having diff >= 3
    ma hai messo l'asterisco appositamente per prendere tutti i campi? poi non li prende come ho fatto io l'esempio o no?
    Mai dire Mai

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Il mio è solo un esempio per farti vedere come trovare i record che hanno una differenza di giorni maggiore o uguale a tre. Tu mettici i campi che vuoi.

  5. #5
    io provo cosi' ma non va...

    Codice PHP:
    $sql "select id, nome, cognome, hotel, DATE_FORMAT(data_arrivo, '%d/%m/%Y') AS data_arrivo, DATE_FORMAT(data_partenza, '%d/%m/%Y') AS data_partenza, data_arrivo as arrivo, DATE_FORMAT(data, '%d/%m/%Y') AS data, to_days(data_partenza) - to_days(data_arrivo) as diff, persone, giro_isola, giro_isola_barca, gita_capri, gita_procida, datediff(data_partenza,data_arrivo) as diff from gestione having diff >= 3
     where data_arrivo between curdate() and curdate() + interval 7 day and storico !='3' order by arrivo, hotel"

    perche'?
    Mai dire Mai

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La clausola having la devi usare a fine query. Non si mette prima del where.

  7. #7
    non la conoscevo quella clausola, cmq funziona, grazie
    Mai dire Mai

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 © 2025 vBulletin Solutions, Inc. All rights reserved.