Buongiorno.
Praticamente ho una tabella con dei prodotti identificata da CodProdotto una tabella spedizioni identificata da IdSpedizione e una tabella ordini dove memorizzo i vari prodotti ordinati, quindi identificata da CodProdotto + IdSpedizione.
Vorrei creare una vista che visualizza una lista dei prodotti che sono stati venduta in coppia ordinati in base ai più venduti.
Io ho scritto questo secondo voi va bene??
codice:
- Visualizza i prodotti più venduti in coppia
Vogliamo visualizzare le coppie di prodotti più venduti
CREATE VIEW cod_prodotti_venduti_coppia AS
SELECT p1.CodProdotto as Prod1, p2.CodProdotto as Prod2 FROM prodotti as p1 JOIN prodotti as p2
EXCEPT
SELECT o1.CodProdotto as Prod1,o2.CodProdotto as Prod2 FROM ordini as o1 JOIN ordini as o2
WHERE o1.IdSpedizione<>o2.IdSpedizione
CREATE VIEW prodotti_venduti_coppia AS
SELECT p1.Modello as Mod1, p2.Modello as Mod2
FROM prodotti as p1 JOIN prodotti as p2
RIGHT JOIN prodotti_venduti_coppia
ON prodotti_venduti_coppia.Prod1=p1.CodProdotto
AND prodotti_veduti_coppia.Prod2=p2.CodProdotto
Ci sarebbe qualcosa di migliore? Inoltre qualcosa per inglobare anche la quantità acquistata per ordinare in base ai più venduti?????
Grazie mille metto sotto anche la struttura della tabella ordini le altre non servono bastano gli ID.
codice:
Tabella Ordini
CREATE TABLE `ordini` (
`IdSpedizione` int(9) NOT NULL ,
`CodProdotto` int(9) NOT NULL,
`Richiesti` int(2) NOT NULL ,
`totale` double NOT NULL,
PRIMARY KEY (`IdSpedizione`,`CodProdotto`),
KEY `CodProdotto` (`CodProdotto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ;