Sunteți pe pagina 1din 11

RAPORT DE ANALIZĂ A

AFACERILOR
PROIECT SQL LITE ȘI MYSQL

8 AUGUST 2021
SANDYA VB
1) Scrieți o interogare pentru a afișa detaliile produsului (cod_clasă_produs,
cod_produs, descriere_produs, preț_produs) conform următoarelor criterii și
sortați-le în ordinea descrescătoare a categoriei: a. Dacă categoria este 2050, creșteți
prețul cu 2000 b. Dacă categoria este 2051, creșteți prețul cu 500 c. Dacă categoria
este 2052, creșteți prețul cu 600. Sugestie: Utilizați declarația de caz. nu este necesară
modificarea permanentă a tabelului. (60 RÂNDURI) [NOTĂ: TABEL PRODUSE]

SELECTAȚI P.PRODUCT_CLASS_CODE, P.PRODUCT_ID, P.PRODUCT_DESC,


CAZ P.PRODUCT_CLASS_CODE
CÂND 2050 APOI P.preț_produs + 2000
CÂND 2051 ATUNCI P.preț_produs + 500
CÂND 2052 ATUNCI P.preț_produs + 600
ELSE P.PRODUCT_PRICE
END PRODUCT_PRICE
DIN PRODUS P
INNER JOIN PRODUCT_CLASS PC
ON P.PRODUCT_CLASS_CODE = PC.PRODUCT_CLASS_CODE
COMANDA DUPĂ P.PRODUCT_CLASS_CODE desc;

PRODUCT_CLASS_CODE PRODUCT_ID PRODUCT_DESC PREȚUL


PRODUSULUI
6 3001 99996 Nokia Asha 200 (grafit) 4070

7 3000 99999 Samsung Galaxy Tab 2 P3100 19300

8 3000 99998 Nikon Coolpix L810 Bridge 14987

9 3000 99997 Sony Xperia U (alb negru) 16499


10 3000 99990 Hub USB Quanta cu 4 porturi 500
Execuția s-a încheiat fără erori. Rezultat: 60 de rânduri returnate în 35 ms La linia 1:
SELECTAȚI P. PRODUCT_CLASS_CODE, P. PRODUCT_ID, P. PRODUCT_DESC, CASE P. PRODUCT_CLASS_CODE
CÂND 2050 ATUNCI P . produs_preț + 2000
CÂND 2051 ATUNCI P .preț_produs + 500
CÂND 2052 ATUNCI P .preț_produs + 600
ELSE P.PRODUCT_PRICE END PRODUCT_PRICE DIN PRODUS P
INNER JOIN PRODUCT_CLASS PC
ON P. COD_CLASA_PRODUS = PC .COD_CLASA_PRODUS COMANDA P.P.COD CLASA PRODUS desc;
2) Scrieți o interogare de afișat (product_class_desc, product_id, product_desc,
product_quantity_avail ) și afișați starea inventarului produselor după cum
urmează, conform cantității disponibile: a. Pentru categoriile de electronice și
computere, dacă cantitatea disponibilă este <= 10, afișați „Stoc redus”, 11 <=
cantitate <= 30, afișați „În stoc”, >= 31, afișați „Stoc suficient” b. Pentru categoriile
Papetarie și Îmbrăcăminte, dacă cantitatea <= 20, afișați „Stoc redus”, 21 <=
cantitate <= 80, afișați „În stoc”, >= 81, afișați „Stoc suficient” c. Restul categoriilor,
dacă cantitate <= 15 – „Stoc redus”, 16 <= cantitate <= 50 – „În stoc”, >= 51 – „Stoc
suficient” Pentru toate categoriile, dacă cantitatea disponibilă este 0, afișați
„Epuizat” de stoc'. Sugestie: Utilizați declarația de caz. (60 RÂNDURI) [NOTĂ:
TABELE DE UTILIZAT – produs, clasa_produs]

SELECT PC.PRODUCT_CLASS_DESC AS „Categoria de produs”, P.PRODUCT_ID AS „ID produs”,


P.PRODUCT_DESC AS „Descrierea produsului”, P.PRODUCT_QUANTITY_AVAIL AS
„Disponibilitatea produsului”, CASE
WHEN PC.PRODUCT_CLASS_CODE IN (2050,2053) THEN CASE
WHEN P.PRODUCT_QUANTITY_AVAIL =0 THEN „Stoc epuizat” -- Criterii de stoc epuizat
CÂND P.PRODUCT_QUANTITY_AVAIL <=10, APOI „Stoc redus”
CÂND (P.PRODUCT_QUANTITY_AVAIL >=11 ȘI P.PRODUCT_QUANTITY_AVAIL <=30) ATUNCI „În
stoc”
CÂND (PRODUCT_QUANTITY_AVAIL >=31) ATUNCI „Stoc suficient” SE TERMINĂ
WHEN PC.PRODUCT_CLASS_CODE IN (2052,2056) THEN CASE
WHEN P.PRODUCT_QUANTITY_AVAIL =0 THEN 'Stoc epuizat' -- Criterii de epuizare a
stocului WHEN P.PRODUCT_QUANTITY_AVAIL <=20 THEN 'Stoc redus'
CÂND (P.PRODUCT_QUANTITY_AVAIL >=21 ȘI P.PRODUCT_QUANTITY_AVAIL <=80) ATUNCI „În
stoc”
CÂND (PRODUCT_QUANTITY_AVAIL >=81) ATUNCI „Stoc suficient” SE TERMINĂ
ELSE CASE WHEN P.PRODUCT_QUANTITY_AVAIL =0 THEN 'Stoc epuizat' -- Criterii de
epuizare a stocului WHEN P.PRODUCT_QUANTITY_AVAIL <=15 THEN 'Stoc redus'
CÂND (P.PRODUCT_QUANTITY_AVAIL >=16 ȘI P.PRODUCT_QUANTITY_AVAIL <=50) ATUNCI „În
stoc”
WHEN (PRODUCT_QUANTITY_AVAIL >=51) THEN „Suficient stoc”
Sfârşit
END AS „Starea inventarului”
DIN PRODUS P
INNER JOIN PRODUCT_CLASS PC PE P.PRODUCT_CLASS_CODE =
PC.PRODUCT_CLASS_CODE
COMANDA PENTRU P.PRODUCT_CLASS_CODE,P.PRODUCT_QUANTITY_AVAIL DESC;
Categorie produs ID produs Descriere produs Disponibilitatea Starea
produsului inventarului
2D Televizor Sky LED 102 CM
1 Electronică 1 30 În stoc
2 Electronică 203 Sistem muzical Jocky Speaker HT32 19 În stoc
Frigider Sams 192 L4 cu o singura
3 Electronică 202 usa 15 În stoc
4 Electronică 221 Aparat foto Cybershot DWC-W325 5 Stoc redus
5 Jucării 207 Masina cu telecomanda 29 În stoc

Execuția s-a încheiat fără erori.


Rezultat: 60 de rânduri returnate în 36 ms
La linia 1:
SELECTAȚI PC.PRODUCT_CLASS_DESC AS „Categoria de produs”,
P.PRODUCT_ID AS „ID-ul produsului”,
P.PRODUCT_DESC AS „Descrierea produsului”,
P. PRODUCT_QUANTITY_AVAIL CA „Disponibilitatea produsului”, CASE
— Electronică (2050) și computer (2053)
CÂND PC . PRODUCT_CLASS_CODE IN (2050,2053) ATUNCI
CAZ
WHEN P.PRODUCT_QUANTITY_AVAIL =0 THEN „Stoc epuizat” — Criterii de epuizare
CÂND P.PRODUCT_QUANTITY_AVAIL <=10 , APOI „ Stoc redus”
CÂND (P.PRODUCT_QUANTITY_AVAIL >=11 ȘI P.PRODUCT_QUANTITY_AVAIL <=30) ATUNCI „În stoc
CÂND (PRODUCT_QUANTITY_AVAIL >=31) ATUNCI „ Stoc suficient” SE TERMINĂ

3) Scrieți o interogare pentru a Arăta numărul de orașe din toate țările, altele decât SUA și
MALAYSIA, cu mai mult de 1 oraș, în ordinea descrescătoare a ORĂȘELOR. (2 rânduri)
[NOTĂ: TABEL DE ADRESE, nu utilizați Distinct]

SELECTAȚI COUNT(CITY) AS Count_of_Cites,


ȚARA CA Țară
DE LA ADRESA
GRUP PE TARĂ
AVÂND ȚARA NU ÎN („SUA”, „Malaezia”) ȘI NUMĂR (ORAȘ) > 1
ORDER BY Count_of_Cites DESC;

Count_of_Cites Țară

1 26 India

2 6 Singapore

Execuția s-a încheiat fără erori.


Rezultat: 2 rânduri returnate în 19 ms
La linia 1:
SELECTARE COUNT (CITY) AS Count_of_cites, — Numărul orașelor COUNTRY AS Country
DE LA ADRESA
GRUP PE TARĂ
— Numărul orașelor mai mult de 1 și exclude SUA și Malaezia
AVÂND ȚARA NU ÎN (' SUA „ Malaezia” ) ȘI NUMĂR (ORAȘUL) > 1 — Ordinea descendentă a
numărării orașelor
ORDER BY Count_of_Cites DESC;
4) Scrieți o interogare pentru a afișa codul_client, numele complet al clientului, orașul, codul
PIN și detaliile comenzii (codul comenzii, descrierea clasei de produs, descrierea produsului,
subtotal (cantitate_produs * preț_produs)) pentru comenzile expediate în orașe ale căror
coduri PIN nu au niciun 0. în ele. Sortați rezultatul după numele clientului și subtotal. (52
RÂNDURI) [NOTĂ: TABEL DE UTILIZAT - online_customer, address, order_header,
order_items, product, product_class]

SELECTAȚI OC.CUSTOMER_ID, (OC.CUSTOMER_FNAME ||' '|| OC.CUSTOMER_LNAME) CA


CUSTOMER_FULL_NAME, A.CITY, A.PINCODE, O.ORDER_ID, O.ORDER_DATE,
PC.PRODUCT_CLASS_DESC, P.PRODUCT_DESC, (OI.PRODUCT_QUANTITY *P.PRODUCT_PRICE) CA
SUBTOTAL DE LA ONLINE_CUSTOMER OC
INNER JOIN ADDRESS A ON OC.ADDRESS_ID = A.ADDRESS_ID LEFT JOIN (
SELECTAȚI CUSTOMER_ID, MAX(ORDER_ID) CA ORDER_ID, ORDER_DATE
FROM ORDER_HEADER GROUP BY CUSTOMER_ID ) O ON OC.CUSTOMER_ID = O.CUSTOMER_ID LEFT
JOIN (
SELECTAȚI ORDER_ID,
SUM(PRODUCT_QUANTITY) AS PRODUCT_QUANTITY, PRODUCT_ID
DIN ORDER_ITEMS
GROUP BY ORDER_ID
) OI ON O.ORDER_ID = OI.ORDER_ID
ÎN STÂNGA ÎNSCRIEȚI-VĂ PRODUSUL P ON OI.PRODUCT_ID = P.PRODUCT_ID
ÎN STÂNGA ÎNSCRIEȚI-VĂ LA PRODUCT_CLASS PC PE P.PRODUCT_CLASS_CODE =
PC.PRODUCT_CLASS_CODE
UNDE CAST(A.PINCODE CA INTEGER) NU CA „%0%”
COMANDĂ DE OC.CUSTOMER_FNAME, O.ORDER_DATE, SUBTOTAL

COMANDA DATA
MER_ID CUSTOMER_FULL_NAME ORAȘ COD PIN
ID COMANDĂ
PRODUCT_CLASS_DESC PRODUCT_DESC SUBTOTAL '

1 30 Anita Kohli Amherst 14228 10059 NU Electronică Aparat foto Cybershot DWC-W325 5300

2 19 Bharti Subhash Dharmapuri 635897 10054 NUL Haine Imbracaminte pentru copii Albastru 750

3 10 Bid han C.Roy Hosur 635235 10070 NU Papetărie Calculator desktop Kasyo DJ-2100 1014

4 24 Brian Grazer Abington 2351 10047 Electronică Sistem muzical Jocky Speaker HT32 17800

< >
Execuția s-a încheiat fără erori .
Rezultat: 18 rânduri returnate în 33 ms
La linia 1:
SELECTAȚI OC.CUSTOMER_ID, (OC.CUSTOMER_FNAME ||' '|| OC.CUSTOMER_LNAME) AS
CUSTOMER_FULL_NAME, A. CITY, A. PINCODE, O.ORDER_TD,
O . ORDER_DATE , PC. PRODUCT_CLASS_DESC , P . PRODUCT_DESC ,
(OI. PRODUCT_OUANTITY*P. PRODUCT_PRICE) CA SUBTOTAL
DE LA ONLTNE_CUSTOMER OC
INNER JOIN ADRESA A LA OC. ADDRESS_ID = A.ADDRESS_ID LATĂ ÎN STÂNGA ÎNREGISTRARE

5) Scrieți o interogare pentru a afișa codul produsului, descrierea produsului, cantitatea totală
(sumă (cantitatea produsului) pentru un articol care a fost cumpărat de maximum de ori (în
funcție de cantitate) împreună cu ID-ul produsului 201. (UTILIZAȚI SUB-INTEROARE) (1
RÂND) [NOTĂ: TABEL ORDER_ITEMS, TABEL PRODUSE]

SELECTAȚI OI.PRODUCT_ID,P.PRODUCT_DESC, SUM(OI.PRODUCT_QUANTITY) AS Total_Quantity


FROM ORDER_ITEMS OI
INNER JOIN PRODUCT P ON P.PRODUCT_ID = OI.PRODUCT_ID
WHERE OI.ORDER_ID IN
(
SELECTARE DISTINCT
COMANDA ID
DIN
ORDER_ITEMS A
UNDE
PRODUCT_ID = 201
)
AND OI.PRODUCT_ID <> 201
GROUP BY OI.PRODUCT_ID
ORDER BY Total_Quantity DESC
LIMITA 1;

PRODUCT_ID PRODUCT_DESC Total_Quantity

1 218 Shell Fingerpin Ball Pen 30

Execuția s-a încheiat fără erori.


Rezultat: 1 rânduri returnate în 14 ms
La linia 1:
SELECTARE OI. PRODUCT_ID, P . PRODUCT_DESC, SUM (OI . PRODUCT_QUANTITY) AS Total_Quantity FROM
COMANDA ARTICOLE OI

6) Scrieți o interogare pentru a afișa ID-ul clientului, numele clientului, e-mailul și detaliile
comenzii (ID comandă, descriere produs, cantitate produs, subtotal (cantitate_produs *
preț_produs)) pentru toți clienții, chiar dacă nu au comandat niciun articol. (225 RÂNDURI)
[NOTĂ : TABEL DE UTILIZAT - online_customer, order_header, order_items, product]

SELECTAȚI OC.CUSTOMER_ID, (OC.CUSTOMER_FNAME ||' '|| OC.CUSTOMER_LNAME) CA


CUSTOMER_FULL_NAME, OC.CUSTOMER_EMAIL, O.ORDER_ID,
P.PRODUCT_DESC, OI.PRODUCT_QUANTITY, (OI.PRODUCT_QUANTITY*P.PRODUCT_PRICE) CA
SUBTOTAL DIN ONLINE_CUSTOMER OC
INNER JOIN ADDRESS A ON OC.ADDRESS_ID = A.ADDRESS_ID
STÂNGA ÎNSCRIEREA ORDER_HEADER O PE OC.CUSTOMER_ID =
O.CUSTOMER_ID
PARTEA STÂNGA ORDER_ITEMS OI PE O.ORDER_ID =
OI.ORDER_ID
STANGA ÎNSCRIEȚI-VĂ PRODUSUL P PE OI.PRODUCT_ID =
P.PRODUCT_ID
LĂSAT ÎNSCRIEȚI-VĂ LA PRODUCT_CLASS PC-ul PORNIT
P.PRODUCT_CLASS_CODE = PC.PRODUCT_CLASS_CODE
A
CUSTOMERJD CUSTOMER_FULL_NAME CLIENT-EMAIL COMANDAJD PRODUCT_DESC PRODUS-CANTITATE SUBTOTAL

206 40 Paul Haggis paul_haggis@gmail.com 10053 Sams 21L Cuptor cu microunde 1 6880

207 41 Tharman Shanmugaratnam tharshan@yahoo.co.sg 10066 NULL NUL\ NUL

208 42 Rebecca Lim reblim@msn.co.sg NULL\NULL NUL\ NUL


209 43 Rajiv Chandrasekaran raj iv_cha n @ya h oo. co. în 10051 Solmo Hand Blender Fiber 1 1415

210 43 Rajiv Chandrasekaran raj iv_cha n @ya hoo. co. în 10051 PK Copiator A4 75 GSM hârtie albă ... 5 1425 v

Execuția s-a încheiat fără erori.
Rezultat: 225 de rânduri returnate în 114 ms
La linia 1 :
SELECTAȚI OC.CUSTOMER_ID, (OC.CUSTOMER_FNAME II va OC.CUSTOMER_LNAME) CA CUSTOMER_FULL_NAME, OC.CUSTOMER_EMAIL, O.ORDER_ID,
P . PRODUC T_DE SC, OI . PRODUC T_QUANT IT Y , (O1.PRODUCT_OUANTITY*P.PRODUCT_PRICE) CA SUBTOTAL
DE LA ONLINE_CUSTOMER OC
INNER JOIN ADDRESS A ON OC.ADDRESS_ID = A.ADDRESS_ID
LEFT JOIN ORDER_HEADER O ON OC.CUSTOMER_ID = O.CTSTOMFR TD

7) Scrieți o interogare pentru a afișa codul cartonului, (len*width*height) ca carton_vol și


identificați cutia optimă (cutie cu cel mai mic volum al cărui volum este mai mare decât
volumul total al tuturor articolelor (len * lățime * înălțime * produs_cantitate)) pentru o
comandă dată al cărei ID de comandă este 10006. Să presupunem că toate articolele unei
comenzi sunt ambalate într-o singură cutie (cutie). (1 RÂND) [NOTĂ: TABEL DE
CARTON]

SELECTAȚI C.CARTON_ID, (C.LEN*C.WIDTH*C.HEIGHT) ca VOL


DIN COMENZI.CARTONA C
UNDE (C.LEN*C.WIDTH*C.HEIGHT) >= (
SELECTAȚI
SUM(P.LEN*P.WIDTH*P.HEIGHT*PRODUCT_QUANTITY) AS VOL
FROM ORDERS.ORDER_HEADER OH
INNER JOIN ORDERS.ORDER_ITEMS OI ON OH.ORDER_ID = OI.ORDER_ID
INNER JOIN ORDERS.PRODUCT P ON OI.PRODUCT_ID =
P.PRODUCT_ID
WHERE OH.ORDER_ID =10006 ## S-a filtrat singura adresă
)
COMANDA PENTRU (C.LEN*C.LATIME*C.ALTime) ASC
LIMITA 1;
CARTON JD VOL

► 40 1215000000

8) Scrieți o interogare pentru a afișa detaliile (codul clientului, numele complet al clientului,
codul comenzii, cantitatea de produs) ale clienților care au cumpărat mai mult de zece (adică
cantitatea totală de comandă) pentru fiecare comandă expediată. (11 RÂNDURI) [NOTĂ:
TABELE DE UTILIZAT - online_customer, order_header, order_items,]

SELECTAȚI OC.CUSTOMER_ID AS Customer_ID,


CONCAT(CUSTOMER_FNAME,' ',CUSTOMER_LNAME) AS Customer_FullName, OH.ORDER_ID AS
Order_ID,
SUM(OI.PRODUCT_QUANTITY) AS Total_Order_Quantity
DE LA ONLINE_CUSTOMER OC
INNER JOIN ORDER_HEADER OH ON OH.CUSTOMER_ID = OC.CUSTOMER_ID -- Pentru a conecta
Comanda și detaliile Clientului.
INNER JOIN ORDER_ITEMS OI ON OI.ORDER_ID = OH.ORDER_ID -- Pentru a prelua cantitatea
de produs. WHERE OH.ORDER_STATUS = 'Expediat' -- Pentru a verifica starea comenzii
dacă este expediată.
GROUP BY OH.ORDER_ID
AVÂND Total_Order_Quantity > 10 -- Pentru a verifica că calitatea totală a comenzii
este mai mare de 10. COMANDĂ DE CLIENT_ID;

Număr de
înregistrare client Customer_FullName Comanda ID Cantitatea_totală_comanda
► 2 Jackson Davis 10002 16
2 Jackson Davis 10012 23

3 Komai Choudhary 10007 53


5 Ramya Ravinder 10003 12
6 Anita Goswami 10006 ESTE
6 Anita Goswami 10010 11

6 Anita Goswami 10017 14


7 Ashwathi Bhatt 10008 25

Grila de rezultate EE t Filtru rânduri: Export: E) Wrap Cell Content: 1A


9) Scrieți o interogare pentru a afișa codul_comandă, id-ul clientului și numele complet al
clientului împreună cu (cantitate_produs) ca cantitate totală de produse expediate pentru
ID-uri de comandă > 10060. (6 RÂNDURI) [NOTĂ: TABELE DE UTILIZAT -
online_customer, order_header, order_items ]

SELECTAȚI
OC.CUSTOMER_ID AS Customer_ID,
CONCAT(CUSTOMER_FNAME,' ',CUSTOMER_LNAME) AS Customer_FullName, OH.ORDER_ID AS
Order_ID,
SUM(OI.PRODUCT_QUANTITY) AS Total_Order_Quantity
DE LA ONLINE_CUSTOMER OC
INNER JOIN ORDER_HEADER OH ON OH.CUSTOMER_ID = OC.CUSTOMER_ID -- Pentru a conecta
Comanda și detaliile Clientului.
INNER JOIN ORDER_ITEMS OI ON OI.ORDER_ID = OH.ORDER_ID -- Pentru a prelua
cantitatea de produs.
WHERE OH.ORDER_STATUS = „Expediat” ȘI OH.ORDER_ID > 10060 -- Pentru a verifica
starea comenzii dacă este expediată.
GROUP BY OH.ORDER_ID
ORDER BY Customer_FullName;

Grila de rezultate EE t Filtru rânduri:


Număr de
Customer_FullName Comanda ID Cantitatea_totală_comand
înregistrare client a
► 51 Ahmad Bin Gh Azali 10068 3
23 Anna Pinnock 10069 4

10 Bidhan C.Roy 10070 3


37 James Newton Howard 10061 1
13 Suresh Babu 10063 3
35 Thomas Newman 10064 3

10) Scrieți o interogare pentru a afișa descrierea clasei de produse, cantitatea totală
(sum(cantitate_produs), valoarea totală (cantitate_produs * prețul produsului) și arătați
care clasă de produse au fost expediate cel mai mare (cantitate) în țări din afara Indiei, altele
decât SUA? Arată, de asemenea, valoarea totală a acestor articole. (1 RÂNDURI)
[NOTĂ:TABEL DE PRODUSE,TABEL DE ADRESE,TABEL DE
CLIENTI_ONLINE,TABEL DE ANTET COMANDĂ,TABEL DE COMANDĂ DE
ARTICOLE,TABEL DE CLASE DE PRODUSE]

SELECTAȚI PC.PRODUCT_CLASS_CODE AS Cod_clasă_produs,

PC.PRODUCT_CLASS_DESC AS Product_Class_Description,

SUM(OI.PRODUCT_QUANTITY) AS Total_Quantity,

SUM(OI.PRODUCT_QUANTITY*P.PRODUCT_PRICE) AS Total_Value

DIN ORDER_ITEMS OI

INNER JOIN ORDER_HEADER OH ON OH.ORDER_ID = OI.ORDER_ID -- Înscrieți-vă pentru a


conecta un client online

INNER JOIN ONLINE_CUSTOMER OC ON OC.CUSTOMER_ID = OH.CUSTOMER_ID

INNER JOIN PRODUCT P ON P.PRODUCT_ID = OI.PRODUCT_ID

INNER JOIN PRODUCT_CLASS PC PE PC.PRODUCT_CLASS_CODE = P.PRODUCT_CLASS_CODE

INNER JOIN ADDRESS A ON A.ADDRESS_ID = OC.ADDRESS_ID .


WHERE OH.ORDER_STATUS ='Expediat' ȘI O.TARĂ NU ÎN('India','SUA')

GROUP BY PC.PRODUCT_CLASS_CODE,PC.PRODUCT_CLASS_DESC

ORDER BY Total_Quantity DESC -- Ordonați după Total_Quality

LIMITA 1;

S-ar putea să vă placă și