Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2»
De wikiserver
Línia 82: | Línia 82: | ||
ORDER BY TO_CHAR(orderdate, 'YYYY'); | ORDER BY TO_CHAR(orderdate, 'YYYY'); | ||
</pre> | </pre> | ||
+ | <!-- | ||
8.Quantes ordres per any? | 8.Quantes ordres per any? | ||
<pre> | <pre> | ||
Línia 200: | Línia 201: | ||
WHERE ITEM.PRODID=PRODUCT.PRODID; | WHERE ITEM.PRODID=PRODUCT.PRODID; | ||
</pre> | </pre> | ||
+ | --> |
Revisió del 12:11, 19 nov 2020
1.Quantitat de producte venuda a cada client.
SELECT o.custid, i.prodid, sum(i.qty) “Qtat Producte” FROM ord o, item i WHERE o.ordid = i.ordid GROUP BY o.custid, i.prodid ORDER BY o.custid;
2.Import total venut per cada empleat.
SELECT c.repid, sum(o.total) “Total Venut” FROM customer c, ord o WHERE c.custid = o.custid GROUP BY c.repid ORDER BY c.repid;
3.Empleats que han venut menys que la mitja de tots els empleats.
- Obtenim el que ha venut cada empleat: SELECT empno, SUM(nvl(o.total,0)) FROM emp e, customer c, ord o WHERE e.empno = c.repid (+) AND c.custid = o.custid (+) GROUP BY empno; - Calculem el que han venut en mitja tots els empleats: SELECT AVG(SUM(nvl(o.total,0))) FROM emp e, customer c, ord o WHERE e.empno = c.repid (+) AND c.custid = o.custid (+) GROUP BY empno; - Cada empleat amb el que ha venut: SELECT e.empno, e.ename, avemp.totvenut FROM emp e, (SELECT empno, (SUM(nvl(o.total,0))) totvenut FROM emp e, customer c, ord o WHERE e.empno = c.repid (+) AND c.custid = o.custid (+) GROUP BY empno) avemp WHERE e.empno = avemp.empno; - Unim-lo tot: SELECT e.empno, e.ename, avemp.totvenut FROM emp e, (SELECT empno, (SUM(nvl(o.total,0))) totvenut FROM emp e, customer c, ord o WHERE e.empno = c.repid (+) AND c.custid = o.custid (+) GROUP BY empno) avemp WHERE e.empno = avemp.empno AND avemp.totvenut < (SELECT AVG(SUM(nvl(o.total,0))) FROM emp e, customer c, ord o WHERE e.empno = c.repid (+) AND c.custid = o.custid (+) GROUP BY empno);
4.Quantitat de producte venut. Ordenat per producte.
SELECT i.prodid, sum(i.qty) “Total Producte” FROM item i GROUP BY i.prodid ORDER BY i.prodid;
5.Quantitat de producte venut. Ordenat per quantitat de forma descendent. Han d'aparèixer tots els productes.
SELECT p.prodid, sum(p.qty) “Total Producte” FROM product p, item i WHERE p.prodid = i.prodid (+) GROUP BY p.prodid ORDER BY p.prodid DESC;
6.Quants clients a cada estat?
SELECT c.state, count(c.custid) "Qtat Clients" FROM customer c GROUP BY c.state;
7.Quantes ordres per any i mes?
SELECT TO_CHAR(orderdate, 'YYYY MM') "ANY i MES", COUNT(ordid) "Num. Ordres" FROM ord GROUP BY TO_CHAR(orderdate, 'YYYY') ORDER BY TO_CHAR(orderdate, 'YYYY');