• User Newbie

    Max data

    La mia tabella è composta da Id-Idcliente-scadenza_certificato

    esempio :

    Id-Idcliente-scadenza_certificato
    1 -- 1 ---- 2007/10/26
    2 -- 1 ---- 2007/11/02
    3 -- 2 ---- 2007/11/10

    Mi devo estrarre tutte le date max di ogni gruppo e poi prelevare solo quelle che sono minori o uguali della data odierna aumentata di 2

    Se per esempio oggi fosse 08/10/2007 mi deve restituire solo
    2 - 1 - 2007/11/02
    3 - 2 - 2007/11/10

    Per ricavare solo le max date la query :

    [php]
    SELECT max(scadenza_certificato)as maggiore FROM certificato GROUP by idcliente
    [/php]

    Per Ottenere tutto quello che voglio:

    [php]
    SELECT max(scadenza_certificato)AS maggiore FROM(SELECT scadenza_certificato FROM certificato WHERE scadenza_certificato <= NOW() + interval 2 day GROUP by idcliente)as certificato
    [/php]

    Ma non va.Suggerimenti????
    :ciauz:


  • User Attivo

    Ciao pippozzolo e Benvenuto nel Forum GT,

    potresti darci ulteriori indicazioni su cos'è che non va? Le due query postate ti danno un errore? O semplicemente non ti danno il risultato aspettato?
    Credo che la seconda query abbia la sintassi da rivedere.

    Non ho provato la query che segue ma dovrebbe funzionare, almeno nella logica:

    ** SELECT max(scadenza_certificato) FROM certificato WHERE scadenza_certificato IN (SELECT * FROM certificato WHERE scadenza_certificato <= (NOW() + interval 2 day)) GROUP by idcliente**

    La subquery in rosso ti restituisce solo i record con data minore di oggi aumentata di 2 giorni. La query in nero seleziona invece il massimo delle date raggruppandole per idcliente, ma cerca tali record solo fra quelli che rispettano la subquery.

    Spero sia ciò che cercavi. 😄
    Fammi sapere se funziona!