CREATE TABLE Produkt ( idProdukt INT NOT NULL AUTO_INCREMENT, idDostawa INTEGER NOT NULL, idGrupaProduktu INT NOT NULL, idProducent INT NOT NULL, idJednostka INT NOT NULL, nazwa VARCHAR(50) NOT NULL, ilosc INT NOT NULL, vat TINYINT UNSIGNED NOT NULL, cenaNettoKupna DECIMAL(10,2) NOT NULL, cenaNettoSprzedazy DECIMAL(10,2) NOT NULL, PRIMARY KEY(idProdukt), INDEX Produkt_FKIndex1(idJednostka), INDEX Produkt_FKIndex2(idProducent), INDEX Produkt_FKIndex3(idGrupaProduktu), INDEX Produkt_FKIndex4(idDostawa) );
oraz
CREATE TABLE Zamowienie_has_Produkt ( idProdukt INT NOT NULL, idZamowienie INT NOT NULL, cenaNettoSprzedazy DECIMAL(10,2) NOT NULL, ilosc INT NULL, PRIMARY KEY(idProdukt, idZamowienie), INDEX Zamowienie_has_Produkt_FKIndex1(idZamowienie), INDEX Zamowienie_has_Produkt_FKIndex2(idProdukt) );
w tabeli Produkt mamy produkty ktore przychaadza z dostawy, czesto zdarza sie tak ze w kilku dostawach jest ten sam produkt
dzieki temu w tabeli Produkt moze byc kilka wpisow z tym samym produktem
zrobilem perspektywe ktora sumuje ilosci tych samych produktow
CREATE VIEW ProduktySuma AS SELECT idGrupaProduktu, idProducent, idJednostka, nazwa, SUM(ilosc) AS iloscSuma, MAX(cenaNettoKupna) AS cenaNettoKupnaMax, MAX(cenaNettoSprzedazy) AS cenaNettoSprzedazyMax, vat FROM Produkt GROUP BY nazwa
deuga tabela: Zamowienie_has_Produkt ma zapisane ile i jakie produkty sa zamowiane
chce stworzyc perspekte ProduktyDostepne ktora bedzie zawierac to co perspektywa ProduktySuma - to co zamowione
wymyslilem cos takiego:
CREATE VIEW ProduktyDostepne AS SELECT p.idGrupaProduktu, p.idProducent, p.idJednostka, p.nazwa, SUM(p.ilosc)-SUM(z.ilosc), MAX(p.cenaNettoKupna) AS cenaNettoKupnaMax, MAX(p.cenaNettoSprzedazy) AS cenaNettoSprzedazyMax, vat FROM Produkt p, Zamowienie_has_Produkt z GROUP BY p.nazwa, z.nazwa
ale to nie do konca dziala, bo te produkty krore nigdy nie byly zamawiane w wyniku dają NULL
bardzo prosze o pomoc