Newsgroup: it.comp.www.php
Titolo: Query Mysql

Ho queste tabelle :
Prodotti
| id   | nome   |
| 1    | pane     |
| 2    | vino       |
| 3    | latte      |
Acquisti
| id | prodotto_id | q.ta acqustata   |
| 1 | 1                  | 20                      |
| 1 | 2                  | 30                      |
| 2 | 3                  | 10                      |
| 3 | 2                  | 100                    |
| 3 | 1                  | 50                      |
| 3 | 2                  | 30                      |
Vendite
| id | prodotto_id | q.ta venduta     |
| 1 | 3                  | 20                      |
| 1 | 1                  | 30                      |
| 2 | 2                  | 10                      |
| 3 | 3                  | 40                      |
| 3 | 2                  | 60                      |
| 3 | 1                  | 30                      |
Mi potete aiutare con una stringa SQL ( in MySQL) ad avere questo risultato
:
| nome prodotto | somma_acquistata | somma_venduta |
| latte                | 10                        | 60
|
| pane               | 70                        | 60                      |
| vino                 | 160                      | 70                     |
Grazie  a tutti

Tan Dervishi wrote:
Io farei cosi', anche se l'ho scritto di fretta e non sono certo se sia il 
modo migliore :P
---------------
 BLOCCO CODICE
---------------
// tag apertura tabella e celle d'intestazione
echo "
<table border='1'>
  <tr>
    <th><b>nome prodotto</b></td>
    <th><b>somma_acquistata</b></td>
    <th><b>somma_venduta</b></td>
  </tr>
";
// qui ci va il codice per la connessione a mysql e selezione del db
$res_p = mysql_query("SELECT * FROM Prodotti");
while ($my_p = mysql_fetch_object ($res_p))
{
  $res_a = mysql_query("SELECT * FROM Acquisti WHERE prodotto_id = 
'$my_p->id'");
  $my_a_sum = 0;
  while ($my_a = mysql_fetch_object($res_a))
    {$my_a_sum = $my_a_sum + "$my_a->qta_acquistata";};
  $res_v = mysql_query("SELECT * FROM Vendite WHERE prodotto_id = 
'$my_p->id'");
  $my_v_sum = 0;
  while ($my_v = mysql_fetch_object($res_v))
    {$my_v_sum = $my_v_sum + "$my_v->qta_venduta";};
  echo "
    <tr>
      <td>$my_p->nome</td>
      <td>$my_a_sum</td>
      <td>$my_v_sum</td>
    </tr>
";
};
// tag chiusura tabella
echo "</table>";
-----------------------
 FINE BLOCCO DI CODICE
-----------------------
Spero di esserti stato utile ^___^
Ciao
--netgoblin--

 wrote in message
news:98nK9.18979$lV4.6...@news2.tin.it...

che ne dici di utilizzare join?
io per vedere se funge mi farei le tabelle in access (con aluni esempi di
dati) e poi proverei a fare la query con i vari join.
poi la porti in phpMyAdin, la testi e modifichi il poco da modificare!!
TWiN

[snip]
Argh! È come comprare 10 sacchi di cemento per stuccare il buco
lasciato da un chiodo sul muro! ;)
Se non ho capito male quello che vuoi:
select nome, 
       sum(acquisti.quantita) as 'somma acquistata', 
       sum(vendite.quantita) as 'somma venduta'
from prodotti 
     left join acquisti on 
prodotti.id
=acquisti.prodotto_id
     left join vendite on 
prodotti.id
=vendite.prodotto_id
     group by nome;
Ciao
Matteo

 ha scritto nel messaggio
news:2k4rvu48pnscg3pqd...@4ax.com...


[snip]
Forse è l'unico sistema, ma le temporary tables sono assai pesanti in
termini di risorse...
Un ultimo consiglio: prova a postare la richiesta su
it.comp.software.database .
Ciao
Matteo

      group by nome;
Questo codice l'ho provato, ma mi restituisce sempre "0"... sicuramente ho 
sbagliato qualcosina io :)
Se non rompo, puoi vedere se il codice va scritto in questo modo?
-----------
$res_p = mysql_query("select nome,
        sum(Acquisti.qta_acquistata) as 'acq_sum',
        sum(Vendite.qta_venduta) as 'ven_sum'
 from Prodotti
      left join Acquisti on Prodotti.id='Acquisti.prodotto_id'
      left join Vendite on Prodotti.id='Vendite.prodotto_id'
      group by nome");
while ($my_p = mysql_fetch_object ($res_p))
{
  echo "
    <tr>
      <td>$my_p->nome</td>
      <td>$my_p->acq_sum</td>
      <td>$my_p->ven_sum</td>
    </tr>
";
};
-----------
Grazie ^__^
-- netgoblin --

      left join Vendite on Prodotti.id='Vendite.prodotto_id'
                                         ^                    ^
In queste due righe non mettere le virgolette.
Ciao