Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: estrarre il max valore

  1. #1

    estrarre il max valore

    Ho una tabella acquisti dove all'interno vengono memorizzati vari ordini
    la tabella è composta da (Id-Id_cliente-quantità-Data_acquisto).
    Un cliente in un mese può fare molti acquisti.
    Quindi se per esempio un cliente (Id_cliente 2) in un mese fa 3 acquisti con quantità differenti in giorni differenti , mi ritroverò 3 record con Id_clienti uguali e il campo quantità che varia.
    Adesso mi vorrei estrarre solo il record con la max quantità riferita al cliente in un lasso di tempo.

    Ho provato così:

    codice:
    "SELECT DISTINCT FROM acquisti WHERE prodotti = (select MAX( prodotti ) from prenota_prodotti ) AND data_aquisto<='$al' AND data_acquisto>='$dal'";
    ma non va

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    61
    dovrebbe bastare anche solo "select max(quantità).... group by id_cliente".

    La combinazione di questi due elementi fa si che si selezioni la massima quantità di ogni gruppo che in questo caso coincide con ogni cliente.

    edit: se hai un cliente specificato è ancora più semplice. ma comunque puoi anche solo aggiungere id_cliente=x nella clausola where

  3. #3
    Ho fatto in questo modo

    Codice PHP:
    "SELECT MAX(quantità) from prodotti WHERE data_aquisto<='$al' AND data_aquisto>='$dal' group by id_cliente"
    Non mi da nessun errore ma non mi restituisce nessun risultato

  4. #4
    In questo modo ottengo il valore max di ogni id_cliente nella data richiesta

    Codice PHP:
    mysql_select_db($database_materiale$materiale);
    $query_Recordset3="SELECT quantita, max(quantita) AS maggiore
    FROM prodotti WHERE data_aquisto<='
    $al' AND data_aquisto>='$dal' group by id_cliente";
    $Recordset3 mysql_query($query_Recordset3$materiale) or die(mysql_error());
    $row_Recordset3 mysql_fetch_assoc($Recordset3);
    $totalRows_Recordset3 mysql_num_rows($Recordset3);


    do {         
    echo 
    $row_Recordset3['N_adulti'];        
    } while (
    $row_Recordset3 mysql_fetch_assoc($Recordset3)); 
    Adesso se volessi fare la somma dei valori massimi?????


  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    scusa eh, am se invece avessi fatto

    tela semplifico ma spero di essermi spiegato

    data_fine = mktime(data fine mese scelto);
    data_inizio = mktime(data inizio mese scelto);

    SELECT * FROM tabella WHERE ID='id del cliente' AND data > data_inizio AND data < data_fine ORDER BY DESC;


    sempre se salvi le date nel DB in UnixTime....

    ti prendi il primo valore restituito e sai che quello è il max perche hai l' ordinamento dato da mysql
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    e se non volessi portare le date in UnixTime
    non c'e' rimedio?


  7. #7
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    dovrebbe esserci un' istruzione di mysql per ottenere un valore UnixTime di una data in un campo data, ma non ricordo quale....

    intanto ti correggo la query che mi sono dimenticato una cosina

    SELECT * FROM tabella WHERE ID='id del cliente' AND data > data_inizio AND data < data_fine ORDER BY prezzo DESC;
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  8. #8
    Ho provato a fare una cosa del genere:

    Codice PHP:
    SELECT SUM(quantita) as totale FROM prodotti WHERE quantita=(SELECT quantitamax(quantita) AS maggiore
    FROM prodotti WHERE data_aquisto
    <='$al' AND data_aquisto>='$dal'group by id_cliente 
    ma mi risponde

    codice:
    Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

    Mi sa che ho superato il limite dell'impossibile del php e l'ho sparata grossa eh!!


  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    mi dici che campo è quello che usi per la data ? e che valore memorizzi?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    è un campo date 'YYYY-mm-dd'

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.