Diferència entre revisions de la pàgina «M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2»

De wikiserver
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «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…».)
 
Línia 1: Línia 1:
 
1.Quantitat de producte venuda a cada client.
 
1.Quantitat de producte venuda a cada client.
 
+
<pre>
 
SELECT o.custid, i.prodid, sum(i.qty) “Qtat Producte”
 
SELECT o.custid, i.prodid, sum(i.qty) “Qtat Producte”
 
  FROM ord o, item i
 
  FROM ord o, item i
Línia 6: Línia 6:
 
GROUP BY o.custid, i.prodid
 
GROUP BY o.custid, i.prodid
 
ORDER BY o.custid;
 
ORDER BY o.custid;
 
+
</pre>
 
2.Import total venut per cada empleat.
 
2.Import total venut per cada empleat.
+
<pre>
 
SELECT c.repid, sum(o.total) “Total Venut”
 
SELECT c.repid, sum(o.total) “Total Venut”
 
FROM customer c, ord o
 
FROM customer c, ord o
Línia 14: Línia 14:
 
GROUP BY c.repid
 
GROUP BY c.repid
 
ORDER BY c.repid;
 
ORDER BY c.repid;
 
+
</pre>
 
3.Empleats que han venut menys que la mitja de tots els empleats.
 
3.Empleats que han venut menys que la mitja de tots els empleats.
+
<pre>
 
- Obtenim el que ha venut cada empleat:
 
- Obtenim el que ha venut cada empleat:
  
Línia 39: Línia 39:
 
             GROUP BY empno) avemp
 
             GROUP BY empno) avemp
 
WHERE e.empno = avemp.empno;
 
WHERE e.empno = avemp.empno;
 
 
 
 
 
 
  
 
-  Unim-lo  tot:
 
-  Unim-lo  tot:
Línia 59: Línia 53:
 
                                                                               AND c.custid = o.custid (+)
 
                                                                               AND c.custid = o.custid (+)
 
                                                                 GROUP BY empno);
 
                                                                 GROUP BY empno);
 
+
</pre>
 
4.Quantitat de producte venut. Ordenat per producte.
 
4.Quantitat de producte venut. Ordenat per producte.
 
+
<pre>
 
+
</pre>
 
5.Quantitat de producte venut. Ordenat per quantitat de forma descendent. Han d'aparèixer tots els productes.
 
5.Quantitat de producte venut. Ordenat per quantitat de forma descendent. Han d'aparèixer tots els productes.
 
+
<pre>
 
+
</pre>
 
6.Quants clients a cada estat?
 
6.Quants clients a cada estat?
 
+
<pre>
 
+
</pre>
 
7.Quantes ordres per any i mes?
 
7.Quantes ordres per any i mes?
 
+
<pre>
 
+
</pre>
 
8.Quantes ordres per any?
 
8.Quantes ordres per any?
 
+
<pre>
 
+
</pre>
 
9.En quants productes surt la paraula "TENNIS"?
 
9.En quants productes surt la paraula "TENNIS"?
 
+
<pre>
 
+
</pre>
 
10.Increment del preus dels productes des del primer preu fins l'actual.
 
10.Increment del preus dels productes des del primer preu fins l'actual.
 
+
<pre>
 
+
</pre>
 
11.Màximes quantitats de cada producte venudes en una sola comanda. Ordenades de forma ascendent.
 
11.Màximes quantitats de cada producte venudes en una sola comanda. Ordenades de forma ascendent.
 
+
<pre>
 
SELECT p.descrip, MAX(i.qty) "Max_Qty"
 
SELECT p.descrip, MAX(i.qty) "Max_Qty"
 
FROM product p, item i  
 
FROM product p, item i  
Línia 88: Línia 82:
 
GROUP BY p.descrip
 
GROUP BY p.descrip
 
ORDER BY "Max_Qty" ASC;
 
ORDER BY "Max_Qty" ASC;
 
+
</pre>
 
 
 
 
 
 
  
 
12.Mostrar quantitat de cada producte venut. Només ens interessen aquells productes dels que s'hagin venut més de 4 unitats.
 
12.Mostrar quantitat de cada producte venut. Només ens interessen aquells productes dels que s'hagin venut més de 4 unitats.
 
+
<pre>
 
SELECT p.descrip, SUM(i.qty) "UNITATS VENUDES"
 
SELECT p.descrip, SUM(i.qty) "UNITATS VENUDES"
 
FROM product p, item i  
 
FROM product p, item i  
Línia 100: Línia 91:
 
GROUP BY p.descrip
 
GROUP BY p.descrip
 
HAVING sum(i.qty) > 4;
 
HAVING sum(i.qty) > 4;
 
+
</pre>
 
13.Quantitat de producte venut. Ordenat per producte. Han d'aparèixer tots els productes.
 
13.Quantitat de producte venut. Ordenat per producte. Han d'aparèixer tots els productes.
 
+
<pre>
 
SELECT p.descrip, SUM(i.qty) "UNITATS VENUDES"
 
SELECT p.descrip, SUM(i.qty) "UNITATS VENUDES"
 
FROM product p, item i  
 
FROM product p, item i  
Línia 108: Línia 99:
 
GROUP BY p.descrip
 
GROUP BY p.descrip
 
ORDER BY p.descrip;
 
ORDER BY p.descrip;
 
+
</pre>
 
14.Quantitat de producte venut per empleat.
 
14.Quantitat de producte venut per empleat.
 
+
<pre>
 
SELECT p.descrip, e.ename, SUM(i.qty) "UNITATS VENUDES"
 
SELECT p.descrip, e.ename, SUM(i.qty) "UNITATS VENUDES"
 
FROM product p, item i, emp e, customer c, ord o
 
FROM product p, item i, emp e, customer c, ord o
Línia 117: Línia 108:
 
GROUP BY p.descrip, e.ename
 
GROUP BY p.descrip, e.ename
 
ORDER BY p.descrip;
 
ORDER BY p.descrip;
 
+
</pre>
 
15.Número d'ordres de cada COMMPLAN.
 
15.Número d'ordres de cada COMMPLAN.
 
+
<pre>
 
SELECT commplan, COUNT(ordid)
 
SELECT commplan, COUNT(ordid)
 
FROM ord
 
FROM ord
 
GROUP BY commplan;
 
GROUP BY commplan;
 
+
</pre>
 
16.Número de productes venuts a cada ordre. Han d'aparèixer totes les ordres.
 
16.Número de productes venuts a cada ordre. Han d'aparèixer totes les ordres.
 
+
<pre>
 
SELECT o.ordid, COUNT(i.itemid)
 
SELECT o.ordid, COUNT(i.itemid)
 
FROM ord o, item i
 
FROM ord o, item i
Línia 131: Línia 122:
 
GROUP BY o.ordid
 
GROUP BY o.ordid
 
ORDER BY o.ordid;
 
ORDER BY o.ordid;
 +
</pre>

Revisió del 17:29, 23 gen 2014

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.repid = o.empno
	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 han 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.


5.Quantitat de producte venut. Ordenat per quantitat de forma descendent. Han d'aparèixer tots els productes.


6.Quants clients a cada estat?


7.Quantes ordres per any i mes?


8.Quantes ordres per any?


9.En quants productes surt la paraula "TENNIS"?


10.Increment del preus dels productes des del primer preu fins l'actual.


11.Màximes quantitats de cada producte venudes en una sola comanda. Ordenades de forma ascendent.

	SELECT p.descrip, MAX(i.qty) "Max_Qty"
	FROM product p, item i 
	WHERE p.prodid = i.prodid
	GROUP BY p.descrip
	ORDER BY "Max_Qty" ASC;

12.Mostrar quantitat de cada producte venut. Només ens interessen aquells productes dels que s'hagin venut més de 4 unitats.

	SELECT p.descrip, SUM(i.qty) "UNITATS VENUDES"
	FROM product p, item i 
	WHERE p.prodid = i.prodid
	GROUP BY p.descrip
	HAVING sum(i.qty) > 4;

13.Quantitat de producte venut. Ordenat per producte. Han d'aparèixer tots els productes.

	SELECT p.descrip, SUM(i.qty) "UNITATS VENUDES"
	FROM product p, item i 
	WHERE p.prodid = i.prodid (+)
	GROUP BY p.descrip
	ORDER BY p.descrip;

14.Quantitat de producte venut per empleat.

	SELECT p.descrip, e.ename, SUM(i.qty) "UNITATS VENUDES"
	FROM product p, item i, emp e, customer c, ord o
	WHERE p.prodid = i.prodid AND e.empno = c.repid 
		    AND c.custid = o.custid AND o.ordid = i.ordid
	GROUP BY p.descrip, e.ename
	ORDER BY p.descrip;

15.Número d'ordres de cada COMMPLAN.

	SELECT commplan, COUNT(ordid)
	FROM ord
	GROUP BY commplan; 	

16.Número de productes venuts a cada ordre. Han d'aparèixer totes les ordres.

	SELECT o.ordid, COUNT(i.itemid)
	FROM ord o, item i
	WHERE o.ordid = i.ordid (+)
	GROUP BY o.ordid
	ORDER BY o.ordid;