Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [mysql] raggruppamento su più campi

    Ciao

    io ho una tabella di questo tipo:

    - id_magazzino
    - id_prodotto
    - quantita

    vorrei fare un raggruppamento dei record e ottenere la somma delle quantità per ogni magazzino di ogni prodotto.

    Il problema è che la group by posso farla solo per un campo.

    Come posso fare?

    thnks
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    202
    Non ho capito bene, non va bene

    SELECT id_prodotto, SUM( quantita ) as quantita FROM tabella
    GROUP BY id_prodotto


    ??

  3. #3
    no perchè mi raggrupperebbe tutto indipendentemente dai magazzini, invece io vorrei un raggruppamento per prodotto e per magazzino
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    202
    beh usali allora tutti e due nel group by:

    SELECT id_magazzino , id_prodotto , SUM( quantita )
    FROM tabella
    GROUP BY id_magazzino , id_prodotto

  5. #5


    secondo te non ci ho già provato?
    group by tene lascia usare solo 1...
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    202
    beh io ho provato:

    codice:
    -- 
    -- Struttura della tabella 'prodotto'
    -- 
    
    CREATE TABLE prodotto (
      id_magazzino int(10) unsigned NOT NULL,
      id_prodotto int(10) unsigned NOT NULL,
      quantita int(10) unsigned NOT NULL
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
    
    -- 
    -- Dump dei dati per la tabella 'prodotto'
    -- 
    
    INSERT INTO prodotto VALUES (1, 2, 44);
    INSERT INTO prodotto VALUES (1, 10, 5);
    INSERT INTO prodotto VALUES (2, 10, 5);
    INSERT INTO prodotto VALUES (4, 12, 3);
    INSERT INTO prodotto VALUES (4, 12, 4);
    Risultato
    codice:
    mysql> SELECT id_magazzino , id_prodotto , SUM( quantita ) FROM prodotto GROUP B
    Y id_magazzino , id_prodotto;
    +--------------+-------------+-----------------+
    | id_magazzino | id_prodotto | SUM( quantita ) |
    +--------------+-------------+-----------------+
    |            1 |           2 |              44 |
    |            1 |          10 |               5 |
    |            2 |          10 |               5 |
    |            4 |          12 |               7 |
    +--------------+-------------+-----------------+
    Guarda il 7

  7. #7
    accidenti hai ragione!

    nel mio test avevo fatto cosi:
    codice:
    SELECT id_magazzino , id_prodotto , SUM( quantita ) FROM prodotto GROUP BY (id_magazzino , id_prodotto);
    si vede che la parentesi obbliga ad averne uno!

    Grazie mille!
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    202
    Ni nulla

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.