Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pytanie akademickie o generowanie raportu z dochodem
Mikom
post 2.12.2017, 21:23:26
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 2.12.2017

Ostrzeżenie: (0%)
-----


Witam, pytanie jest na końcu postu, zacznę od tego co już zrobiłem.

Z otrzymanej bazy danych utworzyłem następujące tabele:

Tabela 1 z kategoriami czekolady:
  1. CREATE TABLE Chocolate_Category
  2. (Chocolate_Code VarChar(3) NOT NULL,
  3. Chocolate_Pref VarChar(45) NOT NULL,
  4. Constraint Choc_PK PRIMARY KEY (Chocolate_Code));

  1. ALTER TABLE Chocolate_Category
  2. ALTER COLUMN Chocolate_Pref VarChar(45) NOT NULL;

  1. CREATE UNIQUE INDEX Chocolate_Pref_IDX
  2. ON Chocolate_Category (Chocolate_Pref);


Tabela 2 z dostawą:
  1. CREATE TABLE Shipping
  2. (Shipping_ID VarChar(8) NOT NULL,
  3. Shipping_Type VarChar(25),
  4. Days_To_Delivery Integer,
  5. Fee Decimal (5,2),
  6. Constraint Shipping_PK PRIMARY KEY (Shipping_ID));


Tabela 3 z danymi o produkcie:
  1. CREATE TABLE Product
  2. (Product_ID VarChar(8) NOT NULL,
  3. Product_Name VarChar(45),
  4. Cost Decimal(6,2),
  5. Price Decimal(6,2),
  6. Chocolate_Code VarChar(3),
  7. Oty_On_Hand Integer,
  8. Wholesale_Item VarChar(3),
  9. Qty_Per_Unit Integer,
  10. Constraint ProductID_PK PRIMARY KEY (Product_ID),
  11. Constraint ProductID_FK FOREIGN KEY (Chocolate_Code) REFERENCES Chocolate_Category (Chocolate_Code));


Tabela 4 z danymi klienta:
  1. CREATE TABLE Customer
  2. (Cust_ID VarChar(12) NOT NULL,
  3. First_Name VarChar(25),
  4. Last_Name VarChar(25),
  5. Address VarChar(50),
  6. City VarChar(25),
  7. State VarChar(2),
  8. Zip VarChar (5),
  9. Phone VarChar(15),
  10. Email VarChar(45),
  11. Location_Pref VarChar(7),
  12. Chocolate_Pref VarChar(45),
  13. Company VarChar(45),
  14. Wholesale VarChar(3),
  15. StartDate Date,
  16. Constraint CustID_PK PRIMARY KEY (Cust_ID),
  17. Constraint CustID_FK1 FOREIGN KEY (Location_Pref) REFERENCES Location (Location_ID),
  18. Constraint CustID_FK2 FOREIGN KEY (Chocolate_Pref) REFERENCES Chocolate_Category (Chocolate_Pref));


Tabela 5 z tranzakcjami:
  1. CREATE TABLE Transaction
  2. (Transaction_ID VarChar(7) NOT NULL,
  3. Date Date,
  4. Cust_ID VarChar(12),
  5. Location_ID VarChar(7),
  6. Shipping_ID VarChar(8),
  7. Payment_ID VarChar(12),
  8. Transaction_Type VarChar(1),
  9. Constraint Transaction_PK PRIMARY KEY (Transaction_ID),
  10. Constraint Transaction_FK1 FOREIGN KEY (Cust_ID) REFERENCES Customer (Cust_ID),
  11. Constraint Transaction_FK2 FOREIGN KEY (Location_ID) REFERENCES Location (Location_ID),
  12. Constraint Transaction_FK3 FOREIGN KEY (Shipping_ID) REFERENCES Shipping (Shipping_ID),
  13. Constraint Transaction_FK4 FOREIGN KEY (Payment_ID) REFERENCES Payment (Payment_ID));


I tabelę z pozycjami sprzedanymi gdzie do tranzakcji (Transaction_ID) sa przypisane ilosci sprzedane (Quantity) :
  1. CREATE TABLE Line_Item
  2. (Transaction_ID VarChar(7) NOT NULL,
  3. Product_ID VarChar(8) NOT NULL,
  4. Quantity Integer,
  5. Constraint LineID_PK PRIMARY KEY (Transaction_ID, Product_ID),
  6. Constraint LineID_FK1 FOREIGN KEY (Transaction_ID) REFERENCES Transaction (Transaction_ID),
  7. Constraint LineID_FK2 FOREIGN KEY (Product_ID) REFERENCES Product (Product_ID));


I mam trzy zadania odnośnie powyższych Tabel:

1. Utwórz raport zawierający identyfikator produktu (Prouct_ID), nazwę produktu (Product Name), koszt (Cost), cenę (Price), ilosc na stanie w magazynie (Qty_On_Hand). Grupuj według kategorii czekolady (Chocolate_Category). Sortuj według nazwy product (Product Name).

I po wygenerowaniu poniższego raportu wszystko gra:
  1. SELECT Chocolate_Pref AS 'Kategorie Czekolady', Product.Product_ID AS 'Produkt ID',
  2. Product_Name AS 'Nazwa Produktu', Cost AS 'Koszt', Price AS 'Cena', Qty_On_Hand AS 'Ilosc Produktu w Magazynie'
  3. FROM Product, Chocolate_Category
  4. WHERE Product.Chocolate_Code = Chocolate_Category.Chocolate_Code
  5. GROUP BY Chocolate_Pref, Product_Name, Product.Product_ID, Cost, Price, Qty_On_Hand
  6. ORDER BY Chocolate_Pref ASC, Product_Name ASC;


2. Utwórz raport wyświetlający przychody klienta. Raport ma zawierać imię I nazwisko kienta (Last_Name i First_Name), łączny przychód z produktów, całkowity koszt produktów i całkowity przychód kienta. Grupuj według klienta. Pokaż wszystkie dochody według każdego klienta i na koniec podsumuj doshody wszystkich klientów.
  1. SELECT IsNull(Last_Name + ', ' + First_Name, 'Łącznie:') AS 'Nazwa Kienta',
  2. Format (Sum(Price*Quantity), 'C', 'en-us') AS 'Łączny Przychód',
  3. Format (Sum(Cost*Quantity), 'C', 'en-us') AS ' Łączny Koszt Sprzednych Towarów',
  4. Format (Sum((Price-Cost)*Quantity), 'C', 'en-us') AS ' Łączny Zysk Brutto'
  5. FROM Customer, Transaction, Product, Line_Item
  6. WHERE Customer.Cust_ID = Transaction.Cust_ID
  7. AND Transaction.Transaction_ID = Line_Item.Transaction_ID
  8. AND Line_Item.Product_ID = Product.Product_ID
  9. GROUP BY ROLLUP (Last_Name + ', ' + First_Name);


Mam natomiast problem z zadaniem trzecim:

3. Utwórz raport wyświetlający przychody uzyskane z każdego produktu. Raport ma zawierać identyfikator produktu (Prouct_ID), nazwę produktu (Product Name), koszt (Cost), cenę (Price), ilość na stanie w magazynie (Qty_On_Hand) i potencjalne przychody (Potential Revenue). Grupuj według kategorii czekolady (Chocolate_Category). Sortuj według potencjalnych przychodów (Potential Revenue) i nazwy produktu (Product Name).

Cena produktu (Price) jest w tabeli Product a ilości sprzedane (Quantity) sa przyporządkowane do poszczególnej tranzakcji (Transaction_ID) w tabeli Line_Item

Czy moge prosić o jakakolwiek pomoc z pytaniem trzecim? Jak wyświetlić przychody uzyskane z każdego produktu osobno?



Ten post edytował Mikom 3.12.2017, 00:09:08
Go to the top of the page
+Quote Post
mmmmmmm
post 4.12.2017, 09:14:26
Post #2





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

Ostrzeżenie: (0%)
-----


  1. SELECT Chocolate_Pref AS Kategorie_Czekolady, Product.Product_ID, Product.Product_Name, Product.Cost, Product.Price, Product.Qty_On_Hand, Sum(Line_Item.Quantity*(Product.Price-Product.Cost)) Potential_Revenue
  2. FROM Transaction, Product, Line_Item, Chocolate_Category
  3. WHERE Product.Chocolate_Code = Chocolate_Category.Chocolate_Code
  4. AND Transaction.Transaction_ID = Line_Item.Transaction_ID
  5. AND Line_Item.Product_ID = Product.Product_ID
  6. GROUP BY Chocolate_Pref AS Kategorie_Czekolady, Product.Product_ID, Product.Product_Name, Product.Cost, Product.Price, Product.Qty_On_Hand
  7. ORDER BY 7, Product.Product_Name
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 03:28