• User Newbie

    INNER JOIN tra 3 tabelle e SUM

    Ciao ragazzi,
    vi chiedo un aiuto...

    Intanto prima di tutto vi indico la mia situazione semplificata:

    tabella a
    a.id
    a.descrizione

    tabella b
    b.id
    b.id_a
    b.quantità

    tabella c
    c.id
    c.id_a
    c.quantità

    A me serve una query che mi dia come risultato la somma di b.quantità e c. quantità raggruppata per a.id

    Io ho scritto questa query:

    SELECT a.id, a.description, SUM(b.qta) AS QTA_IN, SUM(c.qta) AS QTA_OUT  FROM (a INNER JOIN b ON a.id = b.id_a) INNER JOIN c ON a.id = c.id_a  GROUP BY a.id 
    

    Il problema sta che nel caso abbia questi dati:
    tabella a
    tabella a
    a.id = 1
    a.descrizione = "casse di birra"

    tabella b
    b.id[1] = 1
    b.id_a[1] = 1
    b.quantità[1] = 10
    b.id[2] = 2
    b.id_a[2] = 1
    b.quantità[2] = 10

    tabella c
    c.id[1] = 1
    c.id_a[1] = 1
    c.quantità[1] = 10

    il risultato sara:
    1, casse di birra, 20, 20
    e come potrete capire da soli i primi 3 campi sono esatti ma l'ultimo no...

    Come posso risolvere?

    Per completezza vi dico che sto programmando in c# ma non è questo il problema al momento...


  • User Newbie

    Ok ho ricevuto una dritta su di un altro forum comunque nel caso possa servire ad altri ecco la dritta:

    SELECT a.* , qta_in , qta_out FROM a JOIN ( SELECT id_a,SUM(qta) qta_in FROM b GROUP BY id_a) x ON x.id_a = a.id JOIN ( SELECT id_a,SUM(qta) qta_out FROM c GROUP BY id_a) y ON y.id_a = a.id;

    Ora il mio problema si è spostato proprio sul codice in c# ma nessun problema cercherò la soluzione...