estrarre il max valore e sommare

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.

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

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?????

 :bye:

inviato 9 anni fa
leoneweb
X 0 X

Falla in PHP... è difficile?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Non riesco a farala un'unica query che mi estragga il numero massimo e mi faccia la somma

ho provato in questo modo:

SELECT SUM(quantita) as totale FROM prodotti WHERE quantita=(SELECT quantita, max(quantita) AS maggiore 
FROM prodotti WHERE data_aquisto<='$al' AND data_aquisto>='$dal') group by id_cliente

Ma mi sa che adesso la sto sparando grossa eh!!

 :bye:

risposto 9 anni fa
leoneweb
X 0 X

Puoi farla con due SELECT annidate ma il problema è che sono supportate solo in MySQL 5, quindi la soluzione sarebbe poco portabile. Si tratta poi di una semplice somma quindi se gli addendi non sono tantissimi io la farei in PHP. Comunque non credo che la sintassi della query che hai riportato sia corretta.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

soluzione:

"select sum(maggiore) as totale_maggiori from (select max(quantita) as maggiore from prodotti  WHERE data_aquisto<='$al' AND data_aquisto>='$dal' group by id_cliente) as prodotti ";

Devo essere sincero non è frutto mio ma presa da altro forum 

 :bye:

risposto 9 anni fa
leoneweb
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda