Ciao a tutti
io ho queste tre tabelle
codice:
Prodotti Magazzino Venduti
+------------+ +------------+ +------------+
|PRD_ID | |PRD_ID | |PRD_ID |
+------------+ +------------+ +------------+
|PRD_Prodotto| |NEG_ID | |NEG_ID |
+------------+ +------------+ +------------+
|PRD_QtaStock| |PRD_QtaSell |
+------------+ +------------+
Ora mi occorrerebbe una vista unica in cui visualizzare tutti i prodotti presenti nella tabella ma per ognuno, se presente, la quantità di prodotti presenti in Magazzino e la quantità di prodotti Venduti filtrandoli per il Negozio di riferimento.
Allora ho creato una vista mettendo in JOIN le tre tabelle in questo modo:
codice:
SELECT
prodotti.PRD_ID,
magazzino.NEG_ID as NEG_ID_Mag,
venduti.NEG_ID as NEG_ID_Ven,
IFNULL(prodotti.PRD_Prodotto, 0) as PRD_Prodotto,
IFNULL(magazzino.PRD_QtaStock, 0) as PRD_QtaStock,
IFNULL(venduti.PRD_QtaSell, 0) as PRD_QtaSell
FROM
(prodotti left join magazzino on (prodotti.PRD_ID = magazzino.PRD_ID))
left join venduti on (prodotti.PRD_ID = venduti.PRD_ID)
E poi la richiamo così:
codice:
SELECT
*
FROM
vw_vista
WHERE
(NEG_ID_Mag is Null AND NEG_ID_Ven is Null) OR
(NEG_ID_Mag = 1 AND NEG_ID_Ven is Null ) OR
(NEG_ID_Mag is Null AND NEG_ID_Ven = 1) OR
(NEG_ID_Mag = 1 AND NEG_ID_Ven = 1)
Aspettandomi di trovare in elenco "tutti i prodotti" e per ognuno, se presente, la sua quantità in magazzino e/o la quantità venduta... beh ovviamente non succede, ottengo questi errori:
1. i prodotti elencati non sono tutti
2. le vendite sono sempre a 0
Dove sbaglio? credo nella vista... o nel richiamarla?
Grazie
ALEX