Ciao a tutti
io ho queste tre tabelle
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.codice:Prodotti Magazzino Venduti +------------+ +------------+ +------------+ |PRD_ID | |PRD_ID | |PRD_ID | +------------+ +------------+ +------------+ |PRD_Prodotto| |NEG_ID | |NEG_ID | +------------+ +------------+ +------------+ |PRD_QtaStock| |PRD_QtaSell | +------------+ +------------+
Allora ho creato una vista mettendo in JOIN le tre tabelle in questo modo:
E poi la richiamo così: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)
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: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)
1. i prodotti elencati non sono tutti
2. le vendite sono sempre a 0
Dove sbaglio? credo nella vista... o nel richiamarla?
Grazie
ALEX

Rispondi quotando
