Hai pensato MOLTO bene alla opportunita di fare una unica
tabella per i "Carichi e Scarichi" aggiungendo un campo
per distinguere appunto il carico dallo scarico ???
__________________________________________________ _______
Comunque con la tua attuale strutura potresti immaginare 2 soluzioni
la 1° ( a parer mio migliore )
- Raggruppa e somma sulla tabella "tbCarico"
- Raggruppa e somma sulla tabella "tbScarico"
- Mette in Join le 2 sopra e la tabella "tbProdotto"
codice:
SELECT
tbProdotto.COD_PRODOTTO,
tbProdotto.DESCRIZIONE,
CC.SuCar,
SS.SuSca
FROM
(
tbProdotto
LEFT JOIN
(
SELECT
tbCarico.COD_PRODOTTO,
Sum(tbCarico.QUANTITA_CARICO) AS SuCar
FROM
tbCarico
GROUP BY
tbCarico.COD_PRODOTTO
) AS CC
ON
tbProdotto.COD_PRODOTTO = CC.COD_PRODOTTO
)
LEFT JOIN
(
SELECT
tbScarico.COD_PRODOTTO,
Sum(tbScarico.QUANTITA_SCARICO) AS SuSca
FROM
tbScarico
GROUP BY
tbScarico.COD_PRODOTTO
) AS SS
ON
tbProdotto.COD_PRODOTTO = SS.COD_PRODOTTO
;
la 2°
- Unisce la tabelle "tbCarico" e "tbScarico" con un distintivo ("CS")
- mette in Join con "tbProdotto"
- Raggruppa per "COD_PRODOTTO" e "CS" e somma le Quantita
codice:
SELECT
tbProdotto.COD_PRODOTTO,
tbProdotto.DESCRIZIONE,
Sum(IIf([Unita]![CS]="C",[Unita]![Quan],0)) AS Cari,
Sum(IIf([Unita]![CS]="S",[Unita]![Quan],0)) AS Scar
FROM
tbProdotto
LEFT JOIN
(
SELECT
"C" AS CS,
tbCarico.QUANTITA_CARICO AS Quan,
tbCarico.COD_PRODOTTO AS Cod
FROM
tbCarico
UNION ALL
SELECT
"S" AS CS,
tbScarico.QUANTITA_SCARICO,
tbScarico.COD_PRODOTTO
FROM
tbScarico
) AS Unita
ON
tbProdotto.COD_PRODOTTO = Unita.Cod
GROUP BY
tbProdotto.COD_PRODOTTO,
tbProdotto.DESCRIZIONE
;
Facci sapere
.