Visualizzazione dei risultati da 1 a 8 su 8

Discussione: PROBLEMA WHERE MAX

  1. #1

    PROBLEMA WHERE MAX

    $sql = mysql_query("SELECT DISTINCT t1.id_oggetto,t1.contratto,t2.data FROM oggetti AS t1, oggetti_riga AS t2 WHERE t2.stato='$stato' AND t1.id_oggetto=t2.oggetto AND t2.data=MAX(t2.data)");


    mi sapete dire perché mi da errore:
    Uso non valido di una funzione di raggruppamento
    age.is.it

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    max non la puoi usare così
    prova con
    Codice PHP:
    sql mysql_query("SELECT DISTINCT t1.id_oggetto,t1.contratto,t2.data FROM oggetti AS t1, oggetti_riga AS t2 WHERE t2.stato='$stato' AND t1.id_oggetto=t2.oggetto AND t2.data=(select MAX(data) from oggetti_riga WHERE stato='$stato')"); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    in alternativa a quello che ti ha suggerito stabi, potresti usare questo:
    codice:
    SELECT DISTINCT t1.id_oggetto,t1.contratto,t2.data, max(t2.data) as mas 
    FROM oggetti AS t1, oggetti_riga AS t2 
    WHERE t2.stato='$stato' AND t1.id_oggetto=t2.oggetto 
    GROUP BY t1.contratto
    HAVING MAX(t2.data)=mas;
    ciao

  4. #4
    così però mi trova sempre un solo record, io dovrei inserirlo in cliclo while

    Grazie
    age.is.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    penso che sia io che stabi abbiamo capito male allora...
    personalmente pensavo dovessi estrapolare un unico record, mentre tu dici di voler mettere la query in un ciclo...

    Puoi spiegare meglio cosa dovresti fare?
    magari posta un po' di codice in più...

  6. #6
    la mia tablla oggetti_riga ha le colonne
    id_riga
    oggetti
    stato
    data

    un oggetto, gni volta che viene spostato di stato, genera una riga nella tabella oggetti_riga
    tipo:
    oggetto: 3
    stato: 2
    data: 2006-01-01

    oggetto: 3
    stato: 1
    data: 2006-01-02

    oggetto: 3
    stato: 2
    data: 2006-01-02

    oggetto: 2
    stato: 2
    data: 2006-01-02

    La mia query con WHERE stato = 2
    dovrebbe tirarmi fuori solo
    oggetto: 3
    stato: 2
    data: 2006-01-02

    oggetto: 2
    stato: 2
    data: 2006-01-02

    Grazie ancora
    age.is.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    allora dovrebbe andare bene quella di stabi:
    codice:
    sql = mysql_query("SELECT DISTINCT t1.id_oggetto,t1.contratto,t2.data FROM oggetti AS t1, oggetti_riga AS t2 WHERE t2.stato='$stato' AND t1.id_oggetto=t2.oggetto AND t2.data=(select MAX(data) from oggetti_riga WHERE stato='$stato')");

  8. #8
    perfetto: grazie mille.
    age.is.it

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.