<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
		<id>http://wikiserver.infomerce.es/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dtriano</id>
		<title>wikiserver - Contribucions de l’usuari [ca]</title>
		<link rel="self" type="application/atom+xml" href="http://wikiserver.infomerce.es/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dtriano"/>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php/Especial:Contribucions/Dtriano"/>
		<updated>2026-05-09T14:26:29Z</updated>
		<subtitle>Contribucions de l’usuari</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12923</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12923"/>
				<updated>2020-03-03T16:31:01Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Proves */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
===Proves===&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Components | Components objecte-relacionals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Objectes | Creació d'objectes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12865</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12865"/>
				<updated>2020-02-18T16:10:48Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
===Proves===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:Pl-SQL-1.doc]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Components | Components objecte-relacionals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Objectes | Creació d'objectes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12762</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12762"/>
				<updated>2020-02-05T18:36:35Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
===Proves===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:Pl-SQL-1.doc]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Components | Components objecte-relacionals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Objectes | Creació d'objectes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_exercicis_Normalitzacio&amp;diff=12761</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_exercicis_Normalitzacio&amp;diff=12761"/>
				<updated>2020-02-05T18:32:37Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Normalització 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Normalització 1==&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Considereu la relació universal formada pels atributs Assig (assignatura), Aula, Alum (alumne), Prof (professor), Hora i Nota (qualificació).&lt;br /&gt;
&lt;br /&gt;
Se sap que cada assignatura té un únic professor; una aula, en un moment determinat, només pot estar ocupada per una única assignatura, i per cada assignatura hi ha una qualificació.&lt;br /&gt;
&lt;br /&gt;
A partir de la relació universal, dissenyeu l’esquema de dependències funcionals i apliqueu el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
Definició de la relació universal:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (Assig, Aula, Alum, Prof, Hora, Nota)&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions de l’enunciat, és aquest:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio1.png |500px|center| Solució normalització exercici 1]]&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar la formada pels atributs Assig, Aula, Hora i Alum, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL ('''''Assig, Aula, Hora, Alum''''', Prof, Nota)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs que no formen part de la clau primària i que tenen dependència funcional no total de la clau.&lt;br /&gt;
&lt;br /&gt;
En efecte, l’atribut Prof depèn d’Assig, i no pas de Nota. També, l’atribut Nota depèn dels atributs Assig i Alum. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ESPAIS ('''''Aula, Hora''''', Assig)&lt;br /&gt;
&lt;br /&gt;
DOCÈNCIA ('''''Assig''''', Prof)&lt;br /&gt;
&lt;br /&gt;
QUALIFICACIONS ('''''Assig, Alum''''', Nota)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les tres relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
També es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben 4FN, ja que cap d’elles no té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les tres relacions es troben en 5FN, ja que cap d’elles no té dependències de reunió.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Normalització 2==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Una federació esportiva vol informatitzar les dades dels esportistes federats, els quals han de ser, obligatòriament, membres d’algun club esportiu. A aquest efecte, es considera que els esportistes estan identificats per un número de federat i poden haver estat en diferents clubs, identificats per un codi, diverses vegades. A part, cada esportista ha passat, al llarg de la seva història, per diferents categories.&lt;br /&gt;
&lt;br /&gt;
Evidentment, també interessa el nom, l’adreça i la ciutat de residència de l’esportista i del club. Ah! les ciutats estan codificades i tenen un nom que no les identifica.&lt;br /&gt;
&lt;br /&gt;
Davant d’aquesta situació, el responsable informàtic de la federació, que no coneix el model Entitat-Relació, ha decidit considerar la relació universal:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
UNIVERSAL (NúmEsp, NomEsp, DirEsp, CodCiuEsp, NomCiuEsp, DataIniClub, DataFiClub, CodClub, NomClub, DirClub, CodCiuClub, NomCiuClub, DataIniCat, DataFiCat, Categoria)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i normalitzar-la, però necessita ajuda.&lt;br /&gt;
&lt;br /&gt;
El podeu ajudar a dissenyar l’esquema de dependències funcionals i aplicar el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
Abreviatures: Esp (esportista); Dir (direcció); Ciu (ciutat); Cat (categoria)&lt;br /&gt;
&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions, és el següent:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio2.png |600px|center| Solució normalització exercici 2]]&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que un esportista no tindrà dues vegades la mateixa categoria, és a dir, en passar d’aleví a infantil, ja no tornarà a ser aleví mai, per la qual cosa, donat un esportista i una categoria, només ens podem trobar amb una data d’inici a la categoria (DataIniCat) i una data final de la categoria (DataFiCat). No passa el mateix en el cas del club al qual pertany un esportista, ja que com es dedueix de l’enunciat, un esportista pot passar per un club diverses vegades. Per tant, la data de finalització en un club (DataFiClub) depèn funcionalment de l’esportista, el club i la data d’inici en el club (DataIniClub).&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar NúmEsp, CodClub, DataIniClub i Categoria, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure el següent:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (NúmEsp, NomEsp, DirEsp, CodCiuEsp, NomCiuEsp, DataIniClub, DataFiClub, CodClub, NomClub, DirClub, CodCiuClub, NomCiuClub, DataIniCat, DataFiCat, Categoria)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs (com es veu en l’esquema de dependències funcionals) que no formen part de la clau primària i que tenen dependència funcional no total de la clau. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES (_NúmEsp_, NomEsp, DirEsp, CodCiuEsp, NomCiu)&lt;br /&gt;
&lt;br /&gt;
CLUBS (_CodClub_, NomClub, DirClub, CodCiuClub, NomCiu)&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES_CLUBS (_NumEsp, CodClub, DataIniClub_, DataFiClub)&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES_CATEGORIES (_NúmEsp, Categoria_, DataIniCat, DataFiCat)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les cinc relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES i CLUBS no es troben en 3FN donat que existeix dependència funcional transitiva:&lt;br /&gt;
&lt;br /&gt;
NumEsp --&amp;gt;  CodCiuEsp --&amp;gt; NomCiu   i&lt;br /&gt;
&lt;br /&gt;
CodClub --&amp;gt;  CodCiuClub --&amp;gt; NomCiu&lt;br /&gt;
&lt;br /&gt;
Per tal de posar les relacions en 3FN creem una relació nova:&lt;br /&gt;
&lt;br /&gt;
CIUTATS (_CodCiu_, NomCiu)&lt;br /&gt;
&lt;br /&gt;
i eliminem el NomCiu de les relacions ESPORTISTES i CLUBS:&lt;br /&gt;
&lt;br /&gt;
ESPORTISTES (_NúmEsp_, NomEsp, DirEsp, CodCiuEsp)&lt;br /&gt;
&lt;br /&gt;
CLUBS (_CodClub_, NomClub, DirClub, CodCiuClub)&lt;br /&gt;
&lt;br /&gt;
Ara totes les relacions es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben 4FN, ja que cap d’elles té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les cinc relacions es troben en 5FN, ja que cap d’elles té dependències de reunió.&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Normalització 3==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és obtenir un disseny correcte a partir d’una relació universal tot aplicant els processos de normalització.&lt;br /&gt;
&lt;br /&gt;
Una associació d’escoles vol informatitzar les dades dels alumnes matriculats en les escoles membres al llarg de la seva història. A aquest efecte, es considera que els alumnes estan identificats per un DNI i es poden matricular d’un curs determinat en diferents escoles, identificades per un codi, per seguir-hi diferents tipus d’estudis, els quals s’identifiquen per un mateix codi en totes les escoles. També interessa saber, per a cada curs, en quin únic nivell d’aquells estudis està matriculat, el grup i l’aula, considerant que cada grup d’un nivell determinat, en cada curs, té assignada una única aula.&lt;br /&gt;
&lt;br /&gt;
Evidentment, també interessa el nom, l’adreça i la ciutat de residència actuals de l’alumne i de l’escola, i el nom dels estudis. Ah, les ciutats estan codificades i tenen un nom que no les identifica.&lt;br /&gt;
&lt;br /&gt;
Davant d’aquesta situació, el responsable informàtic de l’associació, que no coneix el model Entitat-Relació, ha decidit considerar la relació universal següent:&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
UNIVERSAL (DNIAlu, NomAlu, AdrAlu, CodCiuAlu, NomCiuAlu, CodEsc, NomEsc, AdrEsc, CodCiuEsc, NomCiuEsc, CodEst, NomEst, Nivell, Grup, Aula, Curs)&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i normalitzar-la, però necessita ajuda.&lt;br /&gt;
&lt;br /&gt;
El podeu ajudar a dissenyar l’esquema de dependències funcionals i aplicar el procés de normalització fins a assolir les relacions en cinquena forma normal. Indiqueu en quin moment s’assoleixen les diferents formes normals.&lt;br /&gt;
&lt;br /&gt;
Abreviatures: Alu (alumne); Adr (adreça); Ciu (ciutat); Esc (escola); Est (estudis)&lt;br /&gt;
&lt;br /&gt;
'''Solució:'''&lt;br /&gt;
&lt;br /&gt;
La relació universal està en primera forma normal, ja que tots els atributs són indivisibles o atòmics.&lt;br /&gt;
&lt;br /&gt;
L’esquema de dependències funcionals, tenint en compte les observacions, és el següent:&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf3_sol_normalitzacio3.png |600px|center| Solució normalització exercici 3]]&lt;br /&gt;
&lt;br /&gt;
Fixeu-vos que un alumne en una escola per a uns estudis i en un curs està en un únic nivell i grup. L’aula no és un fet que s’hagi d’assignar a l’alumne, ja que és cada grup d’un nivell d’uns estudis en un curs i en una escola que té una aula assignada.&lt;br /&gt;
&lt;br /&gt;
Com a clau primària de la relació universal, podem considerar dni_alu, cod_esc, cod_est i curs, ja que aquests atributs identifiquen els diferents tuples de la relació. Així, podem escriure el següent:&lt;br /&gt;
&lt;br /&gt;
UNIVERSAL (DniAlu, NomAlu, AdrAlu, CodCiuAlu, MomCiuAlu, CodEsc, NomEsc, AdrEsc, CodCiuEsc, NomCiuEsc, CodEst, NomEst, Nivell, Grup, Aula, Curs)&lt;br /&gt;
&lt;br /&gt;
Aquesta relació no es troba en 2FN, ja que té atributs (com es veu en l’esquema de dependències funcionals) que no formen part de la clau primària i que tenen dependència funcional no total de la clau. Per tant, aquestes dependències ens indiquen com hem de trencar la relació universal en relacions de manera que es mantinguin les dependències funcionals i es trobin en 2FN:&lt;br /&gt;
&lt;br /&gt;
ALUMNES (DNIAlu, NomAlu, AdrAlu, CodCiuAlu)&lt;br /&gt;
&lt;br /&gt;
ESCOLES (CodEsc, NomEsc, AdrEsc, CodCiuEsc)&lt;br /&gt;
&lt;br /&gt;
CIUTATS (CodCiu, NomCiu)&lt;br /&gt;
&lt;br /&gt;
ESTUDIS (CodEst, NomEst)&lt;br /&gt;
&lt;br /&gt;
MATRÍCULES (DNIAlu, CodEsc, CodEst, Curs, Nivell, Grup)&lt;br /&gt;
&lt;br /&gt;
ASSIGNACIÓ_AULES (CodEsc, CodEst, Curs, Nivell, Grup, Aula)&lt;br /&gt;
&lt;br /&gt;
Fixem-nos que les sis relacions es troben en 2FN.&lt;br /&gt;
&lt;br /&gt;
També es troben en 3FN, ja que cap d’elles conté atributs no clau amb dependències transitives de la clau.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben en FNBC, ja que no hi ha determinants que no siguin claus candidates.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben 4FN, ja que cap d’elles té dependències multivalents.&lt;br /&gt;
&lt;br /&gt;
Les sis relacions es troben en 5FN, ja que cap d’elles té dependències de reunió.&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12753</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12753"/>
				<updated>2020-02-04T16:14:55Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Colegio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Codi_curs, Id_curs''''', Data_inici, Data_final, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Codi_curs, Id_curs, DNI_alumne''''', Nota) ON {Codi_curs, Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''DNI, Num_reserva'''', Data_ini, Data_fin, Id_agencia) ON {DNI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''DNI, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {DNI, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) &lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
Curs (_Num_curs_, Dni_coordinador) ON {Dni_coordinador} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Professor (_DNI_, Nom, Cognom, Adreça).&lt;br /&gt;
&lt;br /&gt;
ProfessorTel (_DNI_Professor_, _telefono_) ON {DNI_Professor} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Assignatura (_Nom_assig_, _Num_curs_) ON {Num_curs} REFERENCIA Curs.&lt;br /&gt;
&lt;br /&gt;
Grup (_Lletra_, _Id_curs_, DNI_tutor, Num_aula, Num_matric) ON {Num_curs} REFERENCIA Curs i {DNI_tutor} REFERENCIA Professor i {Num_aula} REFERENCIA Aula i {Num_matric} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
Impartir (_Nom_assig_, _Num_curs_, _Lletra_, _Id_curs_, Dni_prof) ON {Nom_assig, Num_curs} REFERENCIA Assignatura i {Lletra, Id_curs} REFERENCIA Grup i {Dni_Prof} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Aula (_Num_aula_, Capacitat, ConnexioPC, Projector)&lt;br /&gt;
&lt;br /&gt;
Alumne (_Num_matricula_, Nom, Cognoms, Adreça, Lletra_Grup, Id_curs) ON {Lletra_Grup, Id_curs} REFERENCIA Grup.&lt;br /&gt;
&lt;br /&gt;
AlumneTel (_Num_matricula_, _telefono_) ON {Num_matricula} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} ref Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} ref Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} ref Vivenda on {dni} ref Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis:Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} ref Bloc y {Dni } ref Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona:Dni, Telefon on {Dni} ref Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Congnoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Puerta }ref Pis&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |600px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
LLIBRE ( ISBN , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( Id_autor , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ISBN, id_autor) ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( Id _editorial , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ISBN, Id_editorial ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ISBN , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ISBN , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( Id_magatzem , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ISBN, Id_magatzem , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( Codi , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( Codi, Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( NIF ; Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( Id_cistella , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( Id_cistella , ISBN , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12752</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12752"/>
				<updated>2020-02-04T16:11:26Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Colegio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Codi_curs, Id_curs''''', Data_inici, Data_final, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Codi_curs, Id_curs, DNI_alumne''''', Nota) ON {Codi_curs, Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''DNI, Num_reserva'''', Data_ini, Data_fin, Id_agencia) ON {DNI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''DNI, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {DNI, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) &lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
Curs (_Num_curs_, Dni_coordinador) ON {Dni_coordinador} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Professor (_DNI_, Nom, Cognom, Adreça).&lt;br /&gt;
&lt;br /&gt;
ProfessorTel (_DNI_Professor_, _telefono_) ON {DNI_Professor} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Assignatura (_Nom_assig_, _Num_curs_) ON {Num_curs} REFERENCIA Curs.&lt;br /&gt;
&lt;br /&gt;
Grup (_Lletra_, _Id_curs_, DNI_tutor, Num_aula, Num_matric) ON {Num_curs} REFERENCIA Curs i {DNI_tutor} REFERENCIA Professor i {Num_aula} REFERENCIA Aula i {Num_matric} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
Impartir (_Nom_assig_, _Num_curs_, _Lletra_, _Id_curs_, Dni_prof) ON {Nom_assig, Num_curs} REFERENCIA Assignatura i {Lletra, Id_curs} REFERENCIA Grup i {Dni_Prof} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Aula (Num_aula, Capacitat, ConnexioPC, Projector)&lt;br /&gt;
&lt;br /&gt;
Alumne (Num_matricula, Nom, Cognoms, Adreça, Lletra_Grup, Id_curs) ON {Lletra_Grup, Id_curs} REFERENCIA Grup.&lt;br /&gt;
&lt;br /&gt;
AlumneTel (Num_matricula, telefono) ON {Num_matricula} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} ref Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} ref Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} ref Vivenda on {dni} ref Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis:Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} ref Bloc y {Dni } ref Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona:Dni, Telefon on {Dni} ref Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Congnoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Puerta }ref Pis&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |600px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
LLIBRE ( ISBN , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( Id_autor , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ISBN, id_autor) ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( Id _editorial , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ISBN, Id_editorial ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ISBN , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ISBN , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( Id_magatzem , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ISBN, Id_magatzem , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( Codi , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( Codi, Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( NIF ; Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( Id_cistella , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( Id_cistella , ISBN , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12751</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12751"/>
				<updated>2020-02-04T15:59:25Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Colegio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Codi_curs, Id_curs''''', Data_inici, Data_final, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Codi_curs, Id_curs, DNI_alumne''''', Nota) ON {Codi_curs, Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''DNI, Num_reserva'''', Data_ini, Data_fin, Id_agencia) ON {DNI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''DNI, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {DNI, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) &lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
Curs (Num_curs, Dni_coordinador) ON {Dni_coordinador} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Professor (DNI, Nom, Cognom, Adreça).&lt;br /&gt;
&lt;br /&gt;
ProfessorTel (DNI_Professor, telefono) ON {DNI_Professor} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Assignatura (Nom_assig, Num_curs) ON {Num_curs} REFERENCIA Curs.&lt;br /&gt;
&lt;br /&gt;
Grup (Lletra, Id_curs, DNI_tutor, Num_aula, Num_matric) ON {Num_curs} REFERENCIA Curs i {DNI_tutor} REFERENCIA Professor i {Num_aula} REFERENCIA Aula i {Num_matric} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
Impartir (Nom_assig, Num_curs, Lletra, Id_curs, Dni_prof) ON {Nom_assig, Num_curs} REFERENCIA Assignatura i {Lletra, Id_curs} REFERENCIA Grup i {Dni_Prof} REFERENCIA Professor.&lt;br /&gt;
&lt;br /&gt;
Aula (Num_aula, Capacitat, ConnexioPC, Projector)&lt;br /&gt;
&lt;br /&gt;
Alumne (Num_matricula, Nom, Cognoms, Adreça, Lletra_Grup, Id_curs) ON {Lletra_Grup, Id_curs} REFERENCIA Grup.&lt;br /&gt;
&lt;br /&gt;
AlumneTel (Num_matricula, telefono) ON {Num_matricula} REFERENCIA Alumne.&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} ref Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} ref Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} ref Vivenda on {dni} ref Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis:Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} ref Bloc y {Dni } ref Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona:Dni, Telefon on {Dni} ref Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Congnoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Puerta }ref Pis&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |600px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
LLIBRE ( ISBN , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( Id_autor , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ISBN, id_autor) ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( Id _editorial , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ISBN, Id_editorial ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ISBN , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ISBN , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( Id_magatzem , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ISBN, Id_magatzem , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( Codi , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( Codi, Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( NIF ; Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( Id_cistella , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( Id_cistella , ISBN , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12750</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12750"/>
				<updated>2020-02-04T15:57:25Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Catastro municipal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Codi_curs, Id_curs''''', Data_inici, Data_final, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Codi_curs, Id_curs, DNI_alumne''''', Nota) ON {Codi_curs, Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''DNI, Num_reserva'''', Data_ini, Data_fin, Id_agencia) ON {DNI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''DNI, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {DNI, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) &lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
&lt;br /&gt;
Zona_Urbana: Nom_zona, Ubicacio;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vivenda: Codi_postal, Carrer Numero Nom_Zona on {Nom_zona} ref Zona_Urbana;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bloc: Garatge, Carrer, Numero ,Nom_Zona on {Carrer,Numero,Nom_Zona} ref Vivenda ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UniFamiliar: Jardi , Metres , Carrer ,Numero Nom_Zona , Dni  on {Carrer,Numero,Nom_zona} ref Vivenda on {dni} ref Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pis:Metres ,  Escala ,Planta ,Puerta ,Carrer Numero ,Nom_Zona ,Dni on  {Carrer Numero Nom_Zona} ref Bloc y {Dni } ref Persona&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tel_Persona:Dni, Telefon on {Dni} ref Persona;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Persona:Nom, Congnoms, Dni  ,Dni_cap , Carrer Numero, Nom_Zona,  Escala ,Planta, Puerta   on{ Carrer, Numero, Nom_Zona} ref UniFamiliar on { Escala, Planta, Puerta }ref Pis&lt;br /&gt;
&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |600px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
LLIBRE ( ISBN , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( Id_autor , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ISBN, id_autor) ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( Id _editorial , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ISBN, Id_editorial ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ISBN , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ISBN , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( Id_magatzem , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ISBN, Id_magatzem , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( Codi , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( Codi, Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( NIF ; Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( Id_cistella , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( Id_cistella , ISBN , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12749</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12749"/>
				<updated>2020-02-04T15:56:44Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Libreria OnLine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Codi_curs, Id_curs''''', Data_inici, Data_final, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Codi_curs, Id_curs, DNI_alumne''''', Nota) ON {Codi_curs, Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''DNI, Num_reserva'''', Data_ini, Data_fin, Id_agencia) ON {DNI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''DNI, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {DNI, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) &lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |600px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
LLIBRE ( ISBN , Titol, descripcio, Any_public)&lt;br /&gt;
&lt;br /&gt;
AUTOR ( Id_autor , Nom, Cognoms, Adreça, url,CodiLocalitatl) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Escriure ( ISBN, id_autor) ON { ISBN } REFERENCIA LLIBRE i { id_autor } REFERENCIA AUTOR&lt;br /&gt;
&lt;br /&gt;
EDITORIAL ( Id _editorial , Nom, Adreça, Telefon, url,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Publicar ( ISBN, Id_editorial ) ON { ISBN } REFERENCIA LLIBRE i { id_editorial } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
PAPER( ISBN , Data_imp, Lloc_imp, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
EBOOK( ISBN , Mida, Preu) ON { ISBN } REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
MAGATZEM( Id_magatzem , Telefon, Adreça,CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
Emmagatzemar( ISBN, Id_magatzem , Stock,) ON { ISBN } REFERENCIA PAPER i { id_magatzem } REFERENCIA EDITORIAL&lt;br /&gt;
&lt;br /&gt;
LOCALITAT( Codi , Nom, Habitants, CodiProvincia) ON { CodiProvincia } REFERENCIA PROVINCIA&lt;br /&gt;
&lt;br /&gt;
PROVINCIA( Codi, Nom, Densitat)&lt;br /&gt;
&lt;br /&gt;
CLIENT( NIF ; Nom, Cognoms, Telefon, Adreça, email, CodiLocalitat) ON { CodiLocalitat } REFERENCIA LOCALITAT&lt;br /&gt;
&lt;br /&gt;
CISTELLA( Id_cistella , Data_compra, NIF) ON { NIF } REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
contenir( Id_cistella , ISBN , Quantitat) ON { ISBN } REFERENCIA LLIBRE i { id_cistella } REFERENCIA CISTELLA&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12748</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12748"/>
				<updated>2020-02-04T15:56:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Libreria OnLine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Codi_curs, Id_curs''''', Data_inici, Data_final, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Codi_curs, Id_curs, DNI_alumne''''', Nota) ON {Codi_curs, Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''DNI, Num_reserva'''', Data_ini, Data_fin, Id_agencia) ON {DNI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''DNI, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {DNI, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) &lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |600px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12747</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12747"/>
				<updated>2020-02-04T15:55:34Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Academia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Codi_curs, Id_curs''''', Data_inici, Data_final, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Codi_curs, Id_curs, DNI_alumne''''', Nota) ON {Codi_curs, Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''DNI, Num_reserva'''', Data_ini, Data_fin, Id_agencia) ON {DNI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''DNI, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {DNI, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) &lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |600px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12746</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12746"/>
				<updated>2020-02-04T15:54:58Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
===Proves===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:Pl-SQL-1.doc]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Components | Components objecte-relacionals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Objectes | Creació d'objectes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12745</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12745"/>
				<updated>2020-02-04T15:54:37Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
===Proves===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:Pl-SQL-1.doc]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Components | Components objecte-relacionals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Objectes | Creació d'objectes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12736</id>
		<title>M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_UF1NF3:_Solucions_Model_relacional_casos_pr%C3%A0ctics&amp;diff=12736"/>
				<updated>2020-01-31T15:11:14Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Biblioteca v1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gabinete abogados==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_gabinete_abogados.png |700px|center| Solució Gabinete abogados]]&lt;br /&gt;
&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
ASSUMPTE ('''''Num_exp''''', Data_ini, Data_fin, Estat, DNI) ON {DNI} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
PROCURADOR ('''''DNI''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
PORTAR ('''''DNI, Num_exp''''') ON {DNI} REFERENCIA PROCURADOR I {Num_exp} REFERENCIA ASSUMPTE&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zoo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_zoo.png |700px|center| Solució Zoo]]&lt;br /&gt;
&lt;br /&gt;
ZOO ('''''Nom''''', Ciutat, Pais, Tamany, Presupost)&lt;br /&gt;
&lt;br /&gt;
ANIMAL ('''''Nom_zoo, Num_ident''''', Sexe, Any_neix, Pais, Continent, Nom_vulgar) ON {Nom_zoo} REFERENCIA ZOO I {Nom_vulgar} REFERENCIA ESPECIE&lt;br /&gt;
&lt;br /&gt;
ESPECIE ('''''Nom_vulgar''''', Nom_cientific, Familia, Perill_extincio)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Club náutico==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_club_nautic.png |500px|center| Solució Club náutic]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Any_titulacio, Categoria)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA SOCI&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PATRO&lt;br /&gt;
&lt;br /&gt;
2. Eliminant subtipus&lt;br /&gt;
&lt;br /&gt;
Eliminem SOCI i PATRO.&lt;br /&gt;
&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta_soci, Any_titulacio_patro, Categoria_patro, Tipus)&lt;br /&gt;
&lt;br /&gt;
VAIXELL ('''''Num_matric''''', Nom, Num_amarre, Quota, DNI_soci) ON {DNI_soci} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
SORTIDA ('''''Num_matric, Data, Hora''''', Desti, DNI_patro) ON {Num_matric} REFERENCIA VAIXELL I {DNI_Patro} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
3. Eliminant supertipus&lt;br /&gt;
&lt;br /&gt;
Eliminem PERSONA i passem els seus atributs a SOCI i PATRO. La resta queda igual.&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''DNI''''', Nom, Cognoms, Telefon, Data_alta)&lt;br /&gt;
&lt;br /&gt;
PATRO ('''''DNI''''', Nom, Cognoms, Telefon, Any_titulacio, Categoria)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Departamentos de una empresa==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
[[Imatge:uf1nf2_sol_departaments_empresa.png |350px|center| Solució Departaments empresa]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DEPARTAMENT ('''''Id_dept''''', Nom, Ubicacio)&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Nom, Cognoms, Telefon, Id_dept, DNI_Director) ON {Id_dept} REFERENCIA DEPARTAMENT I {DNI_Director} REFERENCIA EMPLEAT&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Biblioteca v1==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_biblioteca_v1.png |700px|center| Solució Biblioteca v1]]&lt;br /&gt;
&lt;br /&gt;
AUTOR ('''''Id_autor''''', Nom, Any_neix, Nacionalitat)&lt;br /&gt;
&lt;br /&gt;
SOCI ('''''Codi''''', DNI, Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
LLIBRE ('''''ISBN''''', Titol, Editorial, Any)&lt;br /&gt;
&lt;br /&gt;
EXEMPLAR ('''''ISBN, Num_ex''''', Estat) ON {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
ESCRIURE ('''''Id_autor, ISBN''''') ON {Id_autor} REFERENCIA AUTOR I {ISBN} REFERENCIA LLIBRE&lt;br /&gt;
&lt;br /&gt;
RESERVAR ('''''Codi_soci, ISBN, Num_ex''''', Data_reserva, Data_real, Data_tornar) ON {Codi_soci} REFERENCIA SOCI I {ISBN, Num_ex} REFERENCIA EXEMPLAR&lt;br /&gt;
&lt;br /&gt;
==Academia==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_academia.png |700px|center| Solució Academia]]&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
PROFESSOR ('''''DNI''''', Especialitat) ON {DNI} REFERENCIA PERSONA&lt;br /&gt;
&lt;br /&gt;
EMPLEAT ('''''DNI''''', Anys_emp, Carreg, CIF_empresa) ON {DNI} REFERENCIA ALUMNE i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
&lt;br /&gt;
DESEMPLEAT ('''''DNI''''', Anys_desemp, Darrera_feina) ON {DNI} REFERENCIA ALUMNE&lt;br /&gt;
&lt;br /&gt;
EMPRESA ('''''CIF''''', Nom, Telefon, Adreça) &lt;br /&gt;
&lt;br /&gt;
TIPUS_CURS ('''''Codi_curs''''', Nom, Programa, Hores) &lt;br /&gt;
&lt;br /&gt;
CURS ('''''Codi_curs, Id_curs''''', Data_inici, Data_final, DNI_professor) ON {Codi_curs} REFERENCIA TIPUS_CURS i {DNI_professor} REFERENCIA PROFESSOR&lt;br /&gt;
&lt;br /&gt;
CURSAR ('''''Codi_curs, Id_curs, DNI_alumne''''', Nota) ON {Codi_curs, Id_curs} REFERENCIA CURS i {DNI_alumne} REFERENCIA ALUMNE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant els subtipus empleat i desempleat.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem les relacions empleat i desempleat&lt;br /&gt;
- i:&lt;br /&gt;
&lt;br /&gt;
ALUMNE ('''''DNI''''', Anys, Estudis, Anys_emp, Carreg, Anys_desemp, Darrera_feina, Tipus_alumne, CIF_empresa) ON {DNI} REFERENCIA PERSONA i {CIF_empresa} REFERENCIA EMPRESA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Perrera municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_perrera.png |700px|center| Solució Perrera]]&lt;br /&gt;
&lt;br /&gt;
1. Admeten valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia, Raça) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Sense admetre valors nuls en les claus foranes &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
PERSONA ('''''DNI''''', Nom, Cognoms, Telefon)&lt;br /&gt;
&lt;br /&gt;
GABIA ('''''Id_gabia''''', Capacitat)&lt;br /&gt;
&lt;br /&gt;
GOS ('''''Id_gos''''', Sexe, Data_entrada, Estat, DNI, Id_gabia) ON {DNI} REFERENCIA PERSONA, {Id_gabia} REFERENCIA GABIA i {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
RAÇA ('''''Raça''''', Alçada, Mida, Caracter, Esperança_vida) &lt;br /&gt;
&lt;br /&gt;
RAÇA_GOS ('''''Id_gos''''', Raça) ON {Id_gos} REFERENCIA GOS I {Raça} REFERENCIA RAÇA&lt;br /&gt;
&lt;br /&gt;
PROPIETAT_GOS ('''''Id_gos''''', DNI) ON {Id_gos} REFERENCIA GOS I {DNI} REFERENCIA PERSONA&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alquiler automóviles==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_alquiler_coches.png |800px|center| Solució Alquiler coches]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
CLIENT ('''''DNI''''', Nom, Cognoms, Telefon, DNI_avalador) ON {DNI_avalador} REFERENCIA CLIENT&lt;br /&gt;
&lt;br /&gt;
AGENCIA ('''''Id_agencia''''', Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
COTXE ('''''Matricula''''', Marca, Modelo, Color, Id_garatge) ON {Id_garatge} REFERENCIA GARATGE&lt;br /&gt;
&lt;br /&gt;
GARATGE ('''''Id_garatge''''', Adreça, Metres_quadrats)&lt;br /&gt;
&lt;br /&gt;
RESERVA ('''''DNI, Num_reserva'''', Data_ini, Data_fin, Id_agencia) ON {DNI} REFERENCIA CLIENT I {Id_agencia} REFERENCIA AGENCIA&lt;br /&gt;
&lt;br /&gt;
COTXES_RESERVA ('''''DNI, Num_reserva, Matricula''''', Km_ini, Km_fin) ON {DNI, Num_reserva} REFERENCIA RESERVA I {Matricula} REFERENCIA COTXE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Empresa de comidas==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_empresa_comidas.png |800px|center| Solució Empresa comidas]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. Mantenint supertipus i subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
TREBALLADOR ('''''DNI''''', Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS)&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', Anys_servei) ON {DNI} REFERENCIA TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', Data_neix, DNI_cuiner) ON {DNI} REFERENCIA TREBALLADOR i {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
&lt;br /&gt;
PLAT ('''''Id_plat''''', Nom, Tipus, Preu) &lt;br /&gt;
&lt;br /&gt;
INGREDIENT ('''''Id_ingredient''''', Nom) &lt;br /&gt;
&lt;br /&gt;
MAGATZEM ('''''Num_magatzem''''', Nom, Descripcio, Adreça) &lt;br /&gt;
&lt;br /&gt;
PRESTATGE ('''''Num_magatzem, Lletres''''', Mida) &lt;br /&gt;
&lt;br /&gt;
CUINER_PLAT ('''''DNI_cuiner, Id_plat''''') ON {DNI_cuiner} REFERENCIA CUINER i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PLAT ('''''Id_ingredient, Id_plat''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Id_plat} REFERENCIA PLAT&lt;br /&gt;
&lt;br /&gt;
INGREDIENT_PRESTATGE ('''''Id_ingredient, Num_magatzem, Lletres''''', Quantitat) ON {Id_ingredient} REFERENCIA INGREDIENT i {Num_magatzem, Lletres} REFERENCIA PRESTATGE&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Eliminant el supertipus i mantenenint els subtipus.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Tot igual, amb els següents canvis:&lt;br /&gt;
- eliminem la relació TREBALLADOR&lt;br /&gt;
- i modifiquem CUINER i AJUDANT afegint-lis els atributs de TREBALLADOR&lt;br /&gt;
&lt;br /&gt;
CUINER ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Anys_servei)&lt;br /&gt;
&lt;br /&gt;
AJUDANT ('''''DNI''''', , Nom, Cognoms, Telefon_fixe, Telefon_mobil, NSS, Data_neix, DNI_cuiner) ON {DNI_cuiner} REFERENCIA CUINER&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Colegio==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_colegio.png |800px|center| Solució Colegio]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Banco==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_banco.png |800px|center| Solució Banco]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catastro municipal==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_catastro_municipal.png |800px|center| Solució Catastro municipal]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==líneas de metro==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_linias_metro.png |800px|center| Solució Línies metro]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==Empresa de material informático==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_material_informatico.png |600px|center| Solució Material informático]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Libreria OnLine==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Imatge:uf1nf2_sol_libreria_online.png |800px|center| Solució Libreria Online]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Agencia de viajes==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Centro educativo==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional: &lt;br /&gt;
&lt;br /&gt;
==Spots==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Imatge:uf1nf2_sol_spots.png |700px|center| Solució Spots]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''1.''' Mantenint el supertipus, els subtipus i admetent valors nuls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ENTITAT_TV('''''Nom''''', Titularitat)&lt;br /&gt;
                    &lt;br /&gt;
CANALS('''''Nom_canal''''', Ambit, Nom_TV)&lt;br /&gt;
on {Nom_TV} REFERENCIA A ENTITAT_TV&lt;br /&gt;
 &lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR,CIF_FC_FL)&lt;br /&gt;
on {CIF_FC_PR} REFERENCIA A FIRMA_COMERCIAL i&lt;br /&gt;
{CIF_FC_FL} REFERENCIA A FIRMA_COMERCIAL&lt;br /&gt;
&lt;br /&gt;
TIPUS_PRODUCTE('''''Tipus''''')&lt;br /&gt;
&lt;br /&gt;
DIRECTORS('''''Id_Director''''', Nom, Cognoms, Data_Neix)&lt;br /&gt;
&lt;br /&gt;
EMPRESES('''''CIF''''', Nom, Cognom, Adreça, Telefon)&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Cap_Marketing) &lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Director_Artistic)&lt;br /&gt;
on {CIF} REFERENCIA A EMPRESES&lt;br /&gt;
&lt;br /&gt;
COST_SPOT('''''Nom_canal, Hora_Inici, Hora_Final''''', Preu_Spot)&lt;br /&gt;
on {Nom_canal} REFERENCIA A CANALS i &lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_EQ('''''Codi, Codi_eq''''', Grau)&lt;br /&gt;
on {Codi} REFERENCIA A SPOT i&lt;br /&gt;
{Codi_eq} REFERENCIA A SPOT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EMISSIONS('''''Codi_Sp, Nom_Canal, Hora_Inici, Hora_Final''''', Num_Vegades)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Nom_canal} REFERENCIA A CANALS i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERNCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
SPOT_PRODUTE('''''Codi_Sp, Tipus_p''''')&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{Tipus_p} REFERENCIA A TIPUS_PRODUCTES&lt;br /&gt;
            &lt;br /&gt;
PROHIBICIONS('''''Tipus, Hora_i, Hora_f, Data_i''''', Data_f, Grau_M) &lt;br /&gt;
on {Tipus_p} REFERENCIA A TIPUS_PRODUCTES i&lt;br /&gt;
{Hora_Inici, Hora_Final} REFERENCIA A FRANJA_HORARIA&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, ID_Director''''', CIF_AG)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{ID_Director} REFERENCIA A DIRECTORS&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
FILMAR_AG('''''Codi_Sp, CIF_AG''''', ID_Director)&lt;br /&gt;
on {Codi_Sp} REFERENCIA A SPOT i&lt;br /&gt;
{CIF_AG} REFERENCIA A AGENCIAS_PUBLICITARIES&lt;br /&gt;
&lt;br /&gt;
CONTRATAR('''''Id_Director, Data_Alta''''', CIF_AG)&lt;br /&gt;
on {Id_Director} REFERENCIA A DIRECTORES i&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2.''' Eliminant el supertipus i sense admetre valors nuls.&lt;br /&gt;
&lt;br /&gt;
S'elimina la relació Empreses i els seus atributs passen als subtipus:&lt;br /&gt;
&lt;br /&gt;
FIRMA_COMERCIAL('''''CIF''''', Nom, Cognom, Adreça, Telefon, Cap_Marketing)&lt;br /&gt;
&lt;br /&gt;
AGENCIES_PUBLICITARIES('''''CIF''''', Nom, Cognom, Adreça, Telefon, Director_Artistic)&lt;br /&gt;
&lt;br /&gt;
Eliminem l'atribut  CIF_FC_FL de SPOTS&lt;br /&gt;
&lt;br /&gt;
SPOTS('''''Codi''''', Idioma, Duracio, CIF_FC_PR)&lt;br /&gt;
&lt;br /&gt;
i Creem una RELACIÓ NOVA:&lt;br /&gt;
&lt;br /&gt;
SP_FC('''''Codi_Sp''''', CIF_FC)&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==La Facultad==&lt;br /&gt;
&lt;br /&gt;
L’objectiu d’aquesta activitat és el d’aplicar els processos de traducció del model ER al model relacional.&lt;br /&gt;
&lt;br /&gt;
Donat el model ER següent, feu-ne la traducció al model relacional:&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12664</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12664"/>
				<updated>2020-01-22T18:14:38Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Activitats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
 &amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
===Proves===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:Pl-SQL-1.doc]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Components | Components objecte-relacionals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Objectes | Creació d'objectes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12460</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12460"/>
				<updated>2019-12-09T15:50:50Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
 &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12372</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12372"/>
				<updated>2019-11-29T15:43:18Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Consultes complexes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
 &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12371</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12371"/>
				<updated>2019-11-29T15:43:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Llenguatge de manipulació de dades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
 &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12370</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12370"/>
				<updated>2019-11-29T15:42:50Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Consultes complexes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
 &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Practiques_UF2:_Llenguatges_SQL&amp;diff=12367</id>
		<title>M2 - Bases de dades / Practiques UF2: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Practiques_UF2:_Llenguatges_SQL&amp;diff=12367"/>
				<updated>2019-11-27T19:11:09Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Entorn gràfic: consultes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Entorn gràfic: consultes==&lt;br /&gt;
&lt;br /&gt;
Utitlitzant query builder d'oracle, resoleu les segënts consultes:&lt;br /&gt;
&lt;br /&gt;
===Grup A===&lt;br /&gt;
&lt;br /&gt;
Bryan 1, Sergi, David, Ivan, Alex V&lt;br /&gt;
&lt;br /&gt;
1. Llista tots els detalls de l'empleat SMITH &lt;br /&gt;
	&lt;br /&gt;
2. Llista el nom i la localització de tots els departaments ordenats per nom de forma ascendent. &lt;br /&gt;
&lt;br /&gt;
3. Llista el nom, job, salari dels empleats que estan treballant pel Deptno 20 o 40. &lt;br /&gt;
&lt;br /&gt;
4. Compta els empleats que estan treballant pel Deptno 20 or 40. &lt;br /&gt;
&lt;br /&gt;
5. Llista tots els empleats que s'han incorporat (hiredate) abans i després del 1982 &lt;br /&gt;
&lt;br /&gt;
6. Llista en nom, job i data de tots els empleats que s'han incorporat després del 1985 &lt;br /&gt;
&lt;br /&gt;
7. Llista la localització (loc) de  l'empleat SMITH. &lt;br /&gt;
&lt;br /&gt;
8. List the emps whose jobs same as SMITH or ALLEN. &lt;br /&gt;
&lt;br /&gt;
9. Llista tots els Grade2 and Grade 3 de la taula emps ordenats per Grade. &lt;br /&gt;
&lt;br /&gt;
10. Llista tota la informació de la taula empleatsque treballen al departament DNAME de 'ACCOUNTING' o 'RESEARCH', ordena els resultats pel nom del departament &lt;br /&gt;
&lt;br /&gt;
11. Calcula per cada Job la mitja del salari i  la mitja del salari amb les comissions. &lt;br /&gt;
	 &lt;br /&gt;
12. Llista els 5 empleats que cobren menys salari ordenats per salari de menor a major. &lt;br /&gt;
&lt;br /&gt;
13. Mostreu tots els noms dels empleats que comencen per ‘S’ o contenen una ‘L’ en la segona lletra. El resultat ha de mostrar la inicial en majúscules i la resta en minúscules. &lt;br /&gt;
&lt;br /&gt;
14. Mostreu nom i les dates sis mesos després de la contractació de tots els empleats que porten més de 350 mesos contractats. Ordenats per data de forma descendent. El format del resultat és el següent: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	Nom		Data revisió &lt;br /&gt;
 	King		17 mayo 1982 &lt;br /&gt;
	Martin		28 marzo 1982 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15. Mostreu el següent resultat: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Empleat &lt;br /&gt;
Smith guanya 800 € i és clerk					 &lt;br /&gt;
Allen guanya 1600 € i és salesman &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
16. Mostreu tots els oficis dels departaments 10 i 30, sense repeticions. Ordenats per ordre alfabètic.&lt;br /&gt;
&lt;br /&gt;
===Grup B===&lt;br /&gt;
&lt;br /&gt;
Bryan 2, Alex, Gerard&lt;br /&gt;
&lt;br /&gt;
1. Mostreu el nom, salari i el salari més 150 € de tots els empleats. La tercera columna anomeneu-la Increment. &lt;br /&gt;
&lt;br /&gt;
2. Mostreu el nom, salari i el número de departament dels empleats que cobren més de 2000 €. &lt;br /&gt;
&lt;br /&gt;
3. Mostreu el nom, salari del empleats que no cobren comissió. &lt;br /&gt;
&lt;br /&gt;
4. Mostreu nom, ofici i salari de tots els empleats que cobren entre 1800 i 2500 €. Ordenats per ofici ascendent i descendent per salari. &lt;br /&gt;
&lt;br /&gt;
5. Llista tots els detalls de l'empleat SMITH &lt;br /&gt;
&lt;br /&gt;
6. Llista el nom i la localització de tots els departaments ordenats per nom de forma ascendent. &lt;br /&gt;
&lt;br /&gt;
7. Llista el nom, job, salari dels empleats que estan treballant pel Deptno 20 o 40. &lt;br /&gt;
&lt;br /&gt;
8. Compta els empleats que estan treballant pel Deptno 20 or 40. &lt;br /&gt;
&lt;br /&gt;
9. Llista tots els empleats que s'han incorporat (hiredate) abans i després del 1982 &lt;br /&gt;
&lt;br /&gt;
10. Llista en nom, job i data de tots els empleats que s'han incorporat després del 1985 &lt;br /&gt;
&lt;br /&gt;
11. Llista la localització (loc) de  l'empleat SMITH. &lt;br /&gt;
&lt;br /&gt;
12. List the emps whose jobs same as SMITH or ALLEN. &lt;br /&gt;
&lt;br /&gt;
13. Llista tots els Grade2 and Grade 3 de la taula emps ordenats per Grade. &lt;br /&gt;
&lt;br /&gt;
14. Llista tota la informació de la taula empleatsque treballen al departament DNAME de 'ACCOUNTING' o 'RESEARCH', ordena els resultats pel nom del departament &lt;br /&gt;
	&lt;br /&gt;
15. Calcula per cada Job la mitja del salari i  la mitja del salari amb les comissions. &lt;br /&gt;
&lt;br /&gt;
16. Llista els 5 empleats que cobren menys salari ordenats per salari de menor a major.&lt;br /&gt;
&lt;br /&gt;
===Grup C===&lt;br /&gt;
&lt;br /&gt;
Ivan S, Danilo, Adri, Eric&lt;br /&gt;
&lt;br /&gt;
1. Mostreu el nom, salari i salari revisat (nom de columna) de tots els empleats. Cal tenir en compte que la revisió es farà en funció del departament al que pertanyen: &lt;br /&gt;
&lt;br /&gt;
::10% pel departament 10 &lt;br /&gt;
::20% pel departament 20 &lt;br /&gt;
::15% per la resta de departaments. &lt;br /&gt;
&lt;br /&gt;
2. Mostreu el número d’empleat, nom, salari i comissió de tots els empleats que tenen una comissió superior al salari. &lt;br /&gt;
&lt;br /&gt;
3. Llista tots els detalls de l'empleat SMITH &lt;br /&gt;
&lt;br /&gt;
4. Llista el nom i la localització de tots els departaments ordenats per nom de forma ascendent. &lt;br /&gt;
&lt;br /&gt;
5. Llista el nom, job, salari dels empleats que estan treballant pel Deptno 20 o 40. &lt;br /&gt;
&lt;br /&gt;
6. Compta els empleats que estan treballant pel Deptno 20 or 40. &lt;br /&gt;
&lt;br /&gt;
7. Llista tots els empleats que s'han incorporat (hiredate) abans i després del 1982 &lt;br /&gt;
&lt;br /&gt;
8. Llista en nom, job i data de tots els empleats que s'han incorporat després del 1985 &lt;br /&gt;
&lt;br /&gt;
9. Llista la localització (loc) de  l'empleat SMITH. &lt;br /&gt;
&lt;br /&gt;
10. List the emps whose jobs same as SMITH or ALLEN. &lt;br /&gt;
&lt;br /&gt;
11. Llista tots els Grade2 and Grade 3 de la taula emps ordenats per Grade. &lt;br /&gt;
&lt;br /&gt;
12. Llista tota la informació de la taula empleatsque treballen al departament DNAME de 'ACCOUNTING' o 'RESEARCH', ordena els resultats pel nom del departament &lt;br /&gt;
&lt;br /&gt;
13. Calcula per cada Job la mitja del salari i  la mitja del salari amb les comissions. &lt;br /&gt;
&lt;br /&gt;
14. Llista els 5 empleats que cobren menys salari ordenats per salari de menor a major. &lt;br /&gt;
&lt;br /&gt;
15. Mostreu nom i número de departament de tots els analistes, managers i oficinistes, que guanyin més de 1000 €. &lt;br /&gt;
&lt;br /&gt;
16. Mostreu el nom i mesos sencers (nom de columna) treballats de tots els empleats que no pertanyen els departaments 10 i 30 . Ordenats per mesos de forma descendent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Entregar un zip amb el document amb les consultes i el resultat de la seva execució.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Entorn gràfic DDL: Query Builder==&lt;br /&gt;
&lt;br /&gt;
Heu d'entregar dos documents: el primer en format &amp;quot;.pdf&amp;quot; contindrà el model entitat-relació, el model relacional i totes les restriccions en format taula (com en el exercici resum); el segon document &amp;quot;.sql&amp;quot; serà un script que contindrà totes les instruccions DDL de totes les taules i constraints, i cinc inserts de registres per a cada una de les taules. Abans de fer l'entrega cal que comproveu que el script funciona correctament, executant-lo amb el QueryBuilder d'Oracle. &lt;br /&gt;
&lt;br /&gt;
Es valorarà:&lt;br /&gt;
&lt;br /&gt;
:* Model entitat-relació.&lt;br /&gt;
:* Model relacional.&lt;br /&gt;
:* Utilització de recursos: seqüències, valors per defecte, funcions, diferents tipus de insercions...&lt;br /&gt;
:* Presentació dels documents.&lt;br /&gt;
:* Funcionament del script.&lt;br /&gt;
:* Dades escollides per fer els INSERTS.&lt;br /&gt;
&lt;br /&gt;
1- Museu.  -- Martí&lt;br /&gt;
&lt;br /&gt;
2- Cursos de català, nivells i professors. -- Marcelo, Ricard&lt;br /&gt;
&lt;br /&gt;
3- Restaurants, reserves, i clients. -- Muhammad Zahid&lt;br /&gt;
&lt;br /&gt;
4- Equips, jugadors i resultats. -- Marc&lt;br /&gt;
&lt;br /&gt;
5- Rutes i etapes. -- Ivan A. &lt;br /&gt;
&lt;br /&gt;
6- Xarxa de municipis, ajuntaments amb varis municipis i comarques. -- Hasnain, Singh&lt;br /&gt;
&lt;br /&gt;
7- Ascensions, pics, serralades i països -- Àlex&lt;br /&gt;
&lt;br /&gt;
8- Curses, corredors, classificacions de curses i de campionats. -- Robert&lt;br /&gt;
&lt;br /&gt;
9- Borsa i inversions. -- Adrià, Ivan S.&lt;br /&gt;
&lt;br /&gt;
10- Incidències. -- César&lt;br /&gt;
&lt;br /&gt;
11- Hospital -- Xia&lt;br /&gt;
&lt;br /&gt;
12- Esports -- Reziko&lt;br /&gt;
&lt;br /&gt;
1- Museu. &lt;br /&gt;
&lt;br /&gt;
Es desitgen introduir les dades de totes les peces d'un museu, tot especificant-ne el tipus de peça de què es tracta, una descripció de la peça, l'any aproximat o documentat d'origen de la peça, la procedència de la mateixa, la secció on s'emmagatzema, l'estat de conservació, etc. Podeu suposar que cada secció del museu tindrà assignat un responsable. &lt;br /&gt;
&lt;br /&gt;
2- Cursos de català, nivells i professors.&lt;br /&gt;
 &lt;br /&gt;
Tenim que desenvolupar una aplicació per guardar les titulacions de català de tots els professors d'ensenyament públic, de cada professor hem d'emmagatzemar les seves dades personals i de contacte. Hem de poder consultar  l'any que es va aprovar el certificat o curs i a quin centre es va examinar. De cada centre hem de guardar l'adreça completa. De cada curs volem guardar també les àrees que té un curs, per exemple:&lt;br /&gt;
&lt;br /&gt;
Nivell D&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellpadding=&amp;quot;4&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;&amp;quot;&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;250 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Àrea&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;250 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Percentatge de cada àrea en&lt;br /&gt;
relació amb el total de la prova&lt;br /&gt;
! align=&amp;quot;left&amp;quot; width=&amp;quot;80 px&amp;quot; style=&amp;quot;background:Lavender; color:Black&amp;quot;|Temps&lt;br /&gt;
|-&lt;br /&gt;
|Comprensió lectora i expressió escrita||12%||3 h i 20 min*&lt;br /&gt;
|-&lt;br /&gt;
|Expressió escrita||20%||3 h i 20 min*&lt;br /&gt;
|-&lt;br /&gt;
|Coneixements pràctics i teòrics del sistema lingüístic||30%||3 h i 20 min*&lt;br /&gt;
|-&lt;br /&gt;
|Coneixements del marc sociolingüístic i històric de la llengua||13%||3 h i 20 min*&lt;br /&gt;
|-&lt;br /&gt;
|Expressió oral||25%||10 min&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3-  Restaurants, reserves, i clients. &lt;br /&gt;
&lt;br /&gt;
En una cadena de restaurants necessitem emmagatzemar les reserves que es realitzen mitjançant un TPV (Terminal Punt de Venda). &lt;br /&gt;
De cada reserva volem saber el client que l'ha fet, la taula, número de persones, quin restaurant i la franja horària. D'un client necessitem el nom, cognoms, adreça,  telèfon i correu electrònic. &lt;br /&gt;
&lt;br /&gt;
4- Equips, jugadors i resultats. &lt;br /&gt;
&lt;br /&gt;
Comencem a fer una aplicació per la Lliga Catalana d'Ultimate, hem d'emmagatzemar els equips que hi participen, especificant el seu nom, la població on pertanyen, la data de creació, una adreça completa per l'enviament de correu postal, la web i un correu electrònic de contacte. De cada equip volem saber els jugadors que hi pertanyen amb les dades personals de cada jugador (data de naixement, gènere, correu electrònic, lloc de naixement, país i el que cregueu convenient). &lt;br /&gt;
La lliga consta de jornades i a cada jornada un equip disputa varis partits dels quals volem emmagatzemar els resultats. &lt;br /&gt;
&lt;br /&gt;
5- Rutes i etapes. &lt;br /&gt;
&lt;br /&gt;
Anem a fer una web tipus wikiloc de rutes de btt, senderisme, piragüisme, etc. La millora que volem implementar és que una ruta consta de varies etapes i a cada etapa guardem la distància, el temps emprat aproximat, desnivell acumulat, data de creació i la dificultat. Cada etapa té associades les poblacions per on passa i de cada població guardem els punts d'interès turístic, com per exemple, museu d'art contemporani amb entrada a 3 euros  i obert tots els matins de 10:00h a 14:00h. &lt;br /&gt;
&lt;br /&gt;
6- Xarxa de municipis, ajuntaments amb varis municipis i comarques. &lt;br /&gt;
&lt;br /&gt;
La generalitat de Catalunya vol publicar una base de dades amb les dades dels municipis de Catalunya per a que la població en pugui fer ús. &lt;br /&gt;
Un municipi pertany a només una comarca i a un ajuntament, i un ajuntament pot tenir varis municipis. &lt;br /&gt;
De cada població publicarem el número d'habitants, altitud, superfície habitada, superfície total. De cada població volem publicar els edificis monumentals que té publicant el nom, la data de construcció i la descripció. &lt;br /&gt;
&lt;br /&gt;
7- Ascensions, pics, serralades i països &lt;br /&gt;
&lt;br /&gt;
Kilian Jornet vol dissenyar una aplicació per la seva web on mostri totes les curses de muntanya on ha participat. Per això de cada cursa volem guardar la posició, el temps, el país, la data i els pics per on ha passat la cursa amb la seva alçada, latitud, serralada a la que pertany i la data de la seva primera ascensió. De les serralades volem mostrar la superfície i els països als que pertany. &lt;br /&gt;
&lt;br /&gt;
8- Curses, corredors, classificacions de curses i de campionats. &lt;br /&gt;
&lt;br /&gt;
Una empresa que organitza curses de córrer. Per a fer això necessita una base de dades on pugui guardar tots els corredors inscrits, amb les seves dades de contacte i les dades necessàries per fer les categories per sexe i edat. La empresa gestionarà varies curses en diferents dates i edicions, de cada cursa volem saber la localitat, província i país on es celebra, la distància i el desnivell acumulat. De cada cursa ha de guardar la posició i el temps emprat en fer-la. &lt;br /&gt;
&lt;br /&gt;
9- Borsa i inversions.&lt;br /&gt;
&lt;br /&gt;
Una gestoria s'encarrega de fer inversions en borsa amb el patrimoni de varis clients. De cada client hem de saber les seves dades de contacte i quantitat de diners que té en metàl·lic. Per una altra banda tenim les dades de totes les empreses que cotitzen en borsa com codi, mercat (ibex, eurostock ...), preu, variació, volum i última data/hora de modificació.&lt;br /&gt;
Quan fem una inversió d'un client necessitem saber l'acció que s'ha comprat o venut, el seu estat (compra o venda), la data , el número d'accions i l'import &lt;br /&gt;
&lt;br /&gt;
10- Incidències&lt;br /&gt;
&lt;br /&gt;
Una botiga online  de productes de electrònics ha vist la necessitat d'instal·lar en la seva web un sistema d'incidències per als seus usuaris. El sistema té els usuaris registrats amb el seu nickname, contrasenya, dades personals, adreça i data de naixement. Tots els usuaris registrats poden introduir incidències sobre un producte que hagin comprat, és per això que necessitem tenir tots els productes en la mateixa base de dades amb el seu codi, descripció i preu. També l'usuari ha de poder fer una comanda amb els productes que hagi comprat, quantitat, data de la comanda i el preu parcial per producte i el total  de la comanda. &lt;br /&gt;
&lt;br /&gt;
11- Hospital&lt;br /&gt;
&lt;br /&gt;
Una mútua dentista ha crescut molt durant els últims anys, i és per això que vol informatitzar tota la informació que ara enregistra amb fitxes de paper i llibres de visites.&lt;br /&gt;
Quan un client pot concertar telefònicament visites a un dels centres que disposa la mútua, sobre la visita necessitem saber les dades del pacient, el tipus de tractament a fer, la data i la hora.&lt;br /&gt;
Del pacient necessitem saber les dades de contacte, el número de seguretat social i l'edat. &lt;br /&gt;
Dels centres de la mútua necessitem saber els horaris que està obert, l'adreça i dades de contacte.&lt;br /&gt;
&lt;br /&gt;
12- Esports&lt;br /&gt;
&lt;br /&gt;
Tenim que desenvolupar una aplicació per gestionar lligues de hoquei, handbol, bàsquet, ultimate i waterpolo. Pot ser que més endavant hàgim d'incloure algun esport minoritari com per exemple el futbol. De cada lliga volem gestionar els equips, les jornades i els resultats dels partits. &lt;br /&gt;
De cada equip necessitem saber la localitat, l'estadi o pavelló on juga i la data de fundació de l'equip. Les jornades es celebren en 1 dia concret i dels partits sempre guardarem la data i l'hora que comença.&lt;br /&gt;
&amp;lt;!-- --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12362</id>
		<title>M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12362"/>
				<updated>2019-11-27T16:46:18Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Llenguatge de definició de dades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción de Esquema==&lt;br /&gt;
&lt;br /&gt;
===Descripción General===&lt;br /&gt;
&lt;br /&gt;
===Diagrama de Relación de Entidades de Ventas===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_entitats_ventas.jpg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T1-Ventas | T1- Recuperación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T2-Ventas | T2- Restricción y ordenación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T3-Ventas | T3- Funciones de una sola Fila]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T4-Ventas | T4- Funciones de conversión]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T5-Ventas | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-Ventas | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-Ventas | T7- Subconsultas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-Ventas | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Exercicis Repàs SQL|Exercicis Repàs BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-1-HR | Solucions T7-1]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2-HR | Solucions T7-2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | Solucions T9]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T12-HR | Solucions T12]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T13-HR | Solucions T13]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12361</id>
		<title>M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12361"/>
				<updated>2019-11-27T16:46:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Llenguatge de manipulació de dades */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción de Esquema==&lt;br /&gt;
&lt;br /&gt;
===Descripción General===&lt;br /&gt;
&lt;br /&gt;
===Diagrama de Relación de Entidades de Ventas===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_entitats_ventas.jpg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T1-Ventas | T1- Recuperación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T2-Ventas | T2- Restricción y ordenación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T3-Ventas | T3- Funciones de una sola Fila]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T4-Ventas | T4- Funciones de conversión]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T5-Ventas | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-Ventas | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-Ventas | T7- Subconsultas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-Ventas | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Exercicis Repàs SQL|Exercicis Repàs BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-1-HR | Solucions T7-1]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2-HR | Solucions T7-2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | Solucions T9]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T12-HR | Solucions T12]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T13-HR | Solucions T13]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12356</id>
		<title>M2 - Bases de dades</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades&amp;diff=12356"/>
				<updated>2019-11-26T16:18:41Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* UF2: Llenguatges SQL: DML i DDL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dates proves==&lt;br /&gt;
&lt;br /&gt;
20/03 Recuperació Model Entitat/Relació(UF1)&lt;br /&gt;
&lt;br /&gt;
27/03 Recuperació Model Relacional. Normalització. (UF1) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. Consultes complexes (UF2) &lt;br /&gt;
&lt;br /&gt;
Recuperació SQL. DML  (UF2) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
== Dates final de curs==&lt;br /&gt;
&lt;br /&gt;
15/05 Entrega pràctica 1 (UF4)&lt;br /&gt;
&lt;br /&gt;
17/05 PROVA DDL-DML (UF2) i Entrega pràctica PL-SQL (UF3)&lt;br /&gt;
&lt;br /&gt;
24/05 PROVA PL/SQL Part 1  (UF3) i Entrega pràctica 2 (UF4)&lt;br /&gt;
&lt;br /&gt;
29/05 PROVA PL/SQL Part 2 (UF3)&lt;br /&gt;
&lt;br /&gt;
31/05 Entrega pràctica 3 (UF4)&lt;br /&gt;
&lt;br /&gt;
07/06 PROVA BDOR (UF4)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Connexió remota Oracle XE  ==&lt;br /&gt;
&lt;br /&gt;
'''Objectiu'''&lt;br /&gt;
&lt;br /&gt;
Connectar-nos a una base de dades Oracle XE on Oracle BD Edició full, que es troba en una altra màquina. Per a això, farem servir l'SQL Command Line d'Oracle; per descomptat amb aquesta configuració podem accedir amb qualsevol programa d'administració d'Oracle o una aplicació creada per nosaltres mateixos.&lt;br /&gt;
&lt;br /&gt;
'''Entorn'''&lt;br /&gt;
&lt;br /&gt;
Tenim 2 màquines connectades en xarxa, la màquina A que serà el Client i en la qual tenim l'SQL Command Line, i la màquina B, que serà el Servidor, el qual rebrà les peticions del client a través del Listener Service d'Oracle i el qual donarà les respectives respostes.&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:m2_con_remota_xe.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
'''Procediment'''&lt;br /&gt;
&lt;br /&gt;
'''Pas 1'''&lt;br /&gt;
&lt;br /&gt;
Hem d'habilitar al Client, la configuració de connexió al Servidor, per a això, canviarem registres en 2 arxius (listener.ora i tnsnames.ora) de configuració d'Oracle.&lt;br /&gt;
&lt;br /&gt;
La ruta d'aquests arxius és:&lt;br /&gt;
&lt;br /&gt;
C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN&lt;br /&gt;
&lt;br /&gt;
Els noms de les carpetes varien en segons la versió que tinguem instal·lada, però la ruta és pràcticament la mateixa.&lt;br /&gt;
&lt;br /&gt;
''' Pas 2: Edició de listener.ora'''&lt;br /&gt;
&lt;br /&gt;
El primer arxiu que hem d'editar és listener.ora. Allà hem de canviar el paràmetre de HOST per la IP o el nom de l'equip del Servidor.&lt;br /&gt;
&lt;br /&gt;
  (ADDRESS = (PROTOCOL = TCP) (HOST = localhost) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
En aquest cas, localhost el reemplacem per l'adreça IP del servidor, al qual ens anem a connectar i el port que està utilitzant, per defecte per a Oracle, el port és 1521. Per exemple:&lt;br /&gt;
&lt;br /&gt;
(ADDRESS = (PROTOCOL = TCP) (HOST = 192.168.10.2) (PORT = 1521))&lt;br /&gt;
&lt;br /&gt;
També hem d'assegurar que el servei Listener per defecte, al qual ens connectarem estigui ben configurat, si el Servidor té la versió Express Edition d'Oracle, la següent línia queda igual&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (XE)&lt;br /&gt;
&lt;br /&gt;
Però si el Servidor té instal·lada la versió Full, hem de canviar el nom del Servei, per exemple:&lt;br /&gt;
&lt;br /&gt;
DEFAULT_SERVICE_LISTENER = (ORCL)&lt;br /&gt;
&lt;br /&gt;
On ORCL és el nom del Servei de la Base de Dades del servidor.&lt;br /&gt;
&lt;br /&gt;
'''Pas 3: Edición de tnsnames.ora'''&lt;br /&gt;
&lt;br /&gt;
També hem de modificar el fitxer tnsnames.ora, el qual trobem en el mateix directori. Allà vam canviar el nom del paràmetre principal XE =, la IP del Servidor (HOST = locahost) i el nom del servei (SERVICE_NAME = XE).&lt;br /&gt;
&lt;br /&gt;
Si el servidor té instal·lada la versió XE, deixem tot igual i només canviem el HOST&lt;br /&gt;
Traductor de Google para empresas:Google Translator ToolkitTraductor de sitios webGlobal Market Finder&lt;br /&gt;
&lt;br /&gt;
XE =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = XE)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
Ara bé, si el Servidor és una base de dades Oracle Full, hem de posar en els camps anteriorment nomenats, el nom del Servei, en aquest exemple el servei es diu ORCL.&lt;br /&gt;
&lt;br /&gt;
ORCL =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.2)(PORT = 1521))&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVER = DEDICATED)&lt;br /&gt;
      (SERVICE_NAME = ORCL)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;br /&gt;
&lt;br /&gt;
'''Pas 4''' &lt;br /&gt;
&lt;br /&gt;
Reiniciem el servei, OracleServiceXE&lt;br /&gt;
&lt;br /&gt;
'''Pas 5: Provant  la connexió'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ara anem a provar que estem connectats al Servidor, per a això vam obrir SQL Command Line d'Oracle i ingressem la comanda per a la connexió.&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@XE&lt;br /&gt;
&lt;br /&gt;
On @XE es el nom del servei per a les versions express, però si estem accedint a una BD amb versió full, haurem de posar, como hem dit abans, el nom del servei, en l'exemple seria:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; CONNECT USUARIO/PASSWORD@ORCL&lt;br /&gt;
&lt;br /&gt;
Si tot el que hem fet és correcte, ens ha d'aparèixer Connected.&lt;br /&gt;
&lt;br /&gt;
D'aquesta manera hem comprovat que estem connectats al nostre servidor de base de dades i ja podem treballar amb ell segons les nostres necessitats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
&lt;br /&gt;
Si no es tenen permisos d'administració per editar els 2 arxius.&lt;br /&gt;
Anem a cada arxiu, Click dret&amp;gt; Propietats&amp;gt; Seguretat&amp;gt; Edita&amp;gt; Permet Control Total&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Reset Password'''&lt;br /&gt;
&lt;br /&gt;
En cas que es caduqui la password:&lt;br /&gt;
&lt;br /&gt;
Obreir el SQL Command&lt;br /&gt;
&lt;br /&gt;
&amp;gt; connect / as sysdba;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; alter user hr identified by hr;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==UF1: Introducció a les bases de dades ==&lt;br /&gt;
&lt;br /&gt;
===NF1: Bases de dades i sistemes gestors de bases de dades. Models ===&lt;br /&gt;
&lt;br /&gt;
RA1: Reconeix els elements de les bases de dades analitzant les seves funcions i valorant la utilitat dels sistemes gestors. &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Mapa conceptual |Mapa conceptual]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Introducció====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Les dades i les bases de dades |Les dades i les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Conceptes de fitxers i bases de dades |Conceptes de fitxers i bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els SGBD |Els SGBD]]&lt;br /&gt;
&lt;br /&gt;
====Models de bases de dades====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Arquitectura del SGBD |Arquitectura del SGBD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Els models de bases de dades més comuns |Els models de bases de dades més comuns]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF1: Bases de dades distribuïdes |Bases de dades distribuïdes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===NF2: Disseny de models lògics===&lt;br /&gt;
&lt;br /&gt;
====Continguts====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Conceptes del model entitat-relació |Conceptes del model entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Diagrames entitat-relació |Diagrames entitat-relació]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Annex: Decisions de disseny |Annex: Decisions de disseny]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Model relacional |Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Normalització |Normalització]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Activitats====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF1: Bàsics disseny |Exercicis bàsics disseny bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Exercicis Model E/R |Exercicis Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Casos pràctics Model E/R |Casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Repàs casos pràctics Model E/R |Repàs casos pràctics Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Model relacional |Exercicis Model relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Exercicis Normalitzacio |Exercicis normalització]]&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model E/R |Solucions exercicis Model E/R]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions casos pràctics Model E/R |Solucions casos pràctics Model E/R]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Solucions exercicis Model Relacional |Solucions exercicis Model Relacional]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions Model relacional casos pràctics|Solucions Model relacional casos pràctics]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Solucions exercicis Normalitzacio |Solucions exercicis normalització]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pràctiques====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF2: Pràctica Model E/R (asix)|Pràctica Model E/R - Eina gràfica]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / UF1NF3: Pràctica Model relacional |Pràctica model relacional]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF2: Llenguatges SQL: DML i DDL ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[http://www.w3schools.com/sql/default.asp Tutorial SQL]&lt;br /&gt;
&lt;br /&gt;
:*Tema Introduccio: Objectius, Terminologia, Uso de SQL, Sentencies SQL, Entorns de desenvolupament, Esquema i Taules emprades.&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF2: Ampliacio SQL |Ampliació SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL |Exercicis BD SCOTT]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Llenguatges SQL |Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL |Exercicis BD Ventes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL |Solucions Exercicis BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL |Solucions Exercicis BD Ventes]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF2: Llenguatges SQL |Pràctiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Exercici Resum |Exercici Resum]]&lt;br /&gt;
 &amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Solucio Exercici Resum |Solució exercici resum DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exemple prova UF2: DDL - DML|Exemple prova DDL-DML]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Solucio exemple prova UF2: DDL - DML|Solució Exemple prova DDL-DML]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==UF3: Llenguatges SQL: DCL i extensió procedimental ==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
====LOPD====&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=ZyaJj4nqhLo Conceptes bàsics de LOPD]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=IkUmpfvMjKE La ley de protección de datos (LOPD) en la empresa]&lt;br /&gt;
&lt;br /&gt;
:*[https://www.youtube.com/watch?v=2cpWgBBgTIs Paso a paso cómo cumplir con la Ley de Protección de Datos I: Formulario NOTA]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : LOPD | LOPD]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Esquema LOPD | Esquema LOPD]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
====DCL====&lt;br /&gt;
&lt;br /&gt;
El material per a elaborar aquests apunts s'ha obtingut de [http://epnbdd-oracle.blogspot.com.es/ epnbdd]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Emmagatzemament |Conceptes d'emmagatzemament]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Components de les BD |Components de les bases de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Privilegis i usuaris |Privilegis i usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració d'usuaris |Administració d'usuaris]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Administració bàsica i seguretat |Administració bàsica i seguretat]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Perfils |Gestió de perfils]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Continguts UF3: Diccionari de dades |El Diccionari de dades]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: DCL |Enllaços]]&lt;br /&gt;
&lt;br /&gt;
====PL/SQL====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3: PL-SQL |Apunts PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!----&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : LOPD | Pràctica LOPD]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: Gestió d'usuaris |Administració oracle]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL |Exercicis PL/SQL: Conceptes fonamentals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis conceptes fundamentals UF3: PL-SQL |Exercicis conceptes fundamentals PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF3: PL-SQL-2 |Exercicis PL/SQL: Desenvolupament d'unitats de programa]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis consolidació UF3: PL-SQL |Exercicis consolidació PL/SQL]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Practiques UF3 : PL-SQL | Pràctica PL-SQL]]&lt;br /&gt;
&lt;br /&gt;
===Proves===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:Pl-SQL-1.doc]]&lt;br /&gt;
&lt;br /&gt;
==UF4: Bases de dades objecte-relacionals==&lt;br /&gt;
&lt;br /&gt;
===Continguts===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR0 | Característiques]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR1 | Objectes i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR2 | Herència entre tipus d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : BDOR3 | Col·leccions]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Components | Components objecte-relacionals]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF3 : Objectes | Creació d'objectes]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Activitats===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
====Lliurament 1====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_1 | Pràctica 1: Tipus objecte i taules d'objectes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_2 | Pràctica 2: Mètodes]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_3 | Pràctica 3: Referències]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 2====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_4 | Pràctica 4: Herència]]&lt;br /&gt;
&lt;br /&gt;
====Lliurament 3====&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_5 | Pràctica 5: Varrays]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Apunts UF4 : Practica_6 | Pràctica 6: Taules niuades]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Enllaços==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=-pS4hsZ-Loo&amp;amp;feature=youtu.be Bases de datos distribuidas de alta disponibilidad]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/streaming.html xarrades]&lt;br /&gt;
&lt;br /&gt;
[http://2015.codemotion.es/agenda.html#5677904553836544 Totes les xarrades]&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12317</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12317"/>
				<updated>2019-11-22T15:12:15Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T6 Uniones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab=fab and id_producto= producto))&lt;br /&gt;
where descripcion not like '%isagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select r.ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o JOIN repventa  r&lt;br /&gt;
ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r JOIN ofinum o&lt;br /&gt;
        ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventas r&lt;br /&gt;
where r.num_empl in (select rep&lt;br /&gt;
            from pedidos&lt;br /&gt;
            where importe &amp;gt; 0.1*r.cuota and rep=r.num_empl);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventas r&lt;br /&gt;
where r.cuota*0.1&amp;lt; any (select importe&lt;br /&gt;
            from pedidos&lt;br /&gt;
            where rep=r.num_empl);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r JOIN pedido p&lt;br /&gt;
ON (r.repcod=p.repcod) where and p.importe &amp;gt; r.cuota*0.1;&lt;br /&gt;
    &lt;br /&gt;
11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o JOIN repventas r&lt;br /&gt;
ON (o.oficina=r.oficina_rep)&lt;br /&gt;
group by o.oficina, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; o.objetivo*0.75;&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.oficina_rep=o.oficina );&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o&lt;br /&gt;
where oficina in (select oficina_rep&lt;br /&gt;
            from repventas r&lt;br /&gt;
            where r.oficina_rep=o.oficina&lt;br /&gt;
            group by oficina_rep&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12316</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12316"/>
				<updated>2019-11-22T15:06:36Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select r.ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o JOIN repventa  r&lt;br /&gt;
ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r JOIN ofinum o&lt;br /&gt;
        ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventas r&lt;br /&gt;
where r.num_empl in (select rep&lt;br /&gt;
            from pedidos&lt;br /&gt;
            where importe &amp;gt; 0.1*r.cuota and rep=r.num_empl);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventas r&lt;br /&gt;
where r.cuota*0.1&amp;lt; any (select importe&lt;br /&gt;
            from pedidos&lt;br /&gt;
            where rep=r.num_empl);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r JOIN pedido p&lt;br /&gt;
ON (r.repcod=p.repcod) where and p.importe &amp;gt; r.cuota*0.1;&lt;br /&gt;
    &lt;br /&gt;
11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o JOIN repventas r&lt;br /&gt;
ON (o.oficina=r.oficina_rep)&lt;br /&gt;
group by o.oficina, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; o.objetivo*0.75;&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.oficina_rep=o.oficina );&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o&lt;br /&gt;
where oficina in (select oficina_rep&lt;br /&gt;
            from repventas r&lt;br /&gt;
            where r.oficina_rep=o.oficina&lt;br /&gt;
            group by oficina_rep&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12315</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12315"/>
				<updated>2019-11-22T14:28:56Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select r.ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o JOIN repventa  r&lt;br /&gt;
ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r JOIN ofinum o&lt;br /&gt;
        ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventas r&lt;br /&gt;
where r.num_empl in (select rep&lt;br /&gt;
            from pedidos&lt;br /&gt;
            where importe &amp;gt; 0.1*r.cuota);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventas r&lt;br /&gt;
where r.cuota*0.1&amp;lt; any (select importe&lt;br /&gt;
            from pedidos&lt;br /&gt;
            where rep=r.num_empl);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r JOIN pedido p&lt;br /&gt;
ON (r.repcod=p.repcod) where and p.importe &amp;gt; r.cuota*0.1;&lt;br /&gt;
    &lt;br /&gt;
11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o JOIN repventas r&lt;br /&gt;
ON (o.oficina=r.oficina_rep)&lt;br /&gt;
group by o.oficina, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; o.objetivo*0.75;&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.oficina_rep=o.oficina );&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o&lt;br /&gt;
where oficina in (select oficina_rep&lt;br /&gt;
            from repventas r&lt;br /&gt;
            where r.oficina_rep=o.oficina&lt;br /&gt;
            group by oficina_rep&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12314</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12314"/>
				<updated>2019-11-22T14:26:56Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select r.ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o JOIN repventa  r&lt;br /&gt;
ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r JOIN ofinum o&lt;br /&gt;
        ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventa r&lt;br /&gt;
where r.num_empl in (select rep&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*r.cuota);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventa r&lt;br /&gt;
where r.cuota*0.1&amp;lt; any (select importe&lt;br /&gt;
            from pedido&lt;br /&gt;
            where rep=r.num.empl)&lt;br /&gt;
&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r JOIN pedido p&lt;br /&gt;
ON (r.repcod=p.repcod) where and p.importe &amp;gt; r.cuota*0.1;&lt;br /&gt;
    &lt;br /&gt;
11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o JOIN repventas r&lt;br /&gt;
ON (o.oficina=r.oficina_rep)&lt;br /&gt;
group by o.oficina, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; o.objetivo*0.75;&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.oficina_rep=o.oficina );&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o&lt;br /&gt;
where oficina in (select oficina_rep&lt;br /&gt;
            from repventas r&lt;br /&gt;
            where r.oficina_rep=o.oficina&lt;br /&gt;
            group by oficina_rep&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12309</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12309"/>
				<updated>2019-11-20T19:07:47Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select r.ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o JOIN repventa  r&lt;br /&gt;
ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r JOIN ofinum o&lt;br /&gt;
        ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r JOIN pedido p&lt;br /&gt;
ON (r.repcod=p.repcod) where and p.importe &amp;gt; r.cuota*0.1;&lt;br /&gt;
    &lt;br /&gt;
11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o JOIN repventas r&lt;br /&gt;
ON (o.oficina=r.oficina_rep)&lt;br /&gt;
group by o.oficina, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; o.objetivo*0.75;&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.oficina_rep=o.oficina );&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select oficina, ciudad, objetivo&lt;br /&gt;
from oficinas o&lt;br /&gt;
where oficina in (select oficina_rep&lt;br /&gt;
            from repventas r&lt;br /&gt;
            where r.oficina_rep=o.oficina&lt;br /&gt;
            group by oficina_rep&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12308</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12308"/>
				<updated>2019-11-20T18:35:26Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select r.ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o JOIN repventa  r&lt;br /&gt;
ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r JOIN ofinum o&lt;br /&gt;
        ON (o.ofinum=r.ofinum) WHERE r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r JOIN pedido p&lt;br /&gt;
ON (r.repcod=p.repcod) where and p.importe &amp;gt; r.cuota*0.1;&lt;br /&gt;
    &lt;br /&gt;
11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o JOIN repventa r&lt;br /&gt;
ON (o.ofinum=r.ofinum)&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; o.objetivo*0.75;&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.ofinum=o.ofinum );&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T8-Ventas&amp;diff=12307</id>
		<title>M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-Ventas</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T8-Ventas&amp;diff=12307"/>
				<updated>2019-11-20T18:31:56Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12306</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12306"/>
				<updated>2019-11-20T18:31:25Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    &lt;br /&gt;
11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o JOIN repventa r&lt;br /&gt;
ON (o.ofinum=r.ofinum)&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; o.objetivo*0.75;&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.ofinum=o.ofinum );&lt;br /&gt;
&lt;br /&gt;
o&lt;br /&gt;
&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa r&lt;br /&gt;
            where r.ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12305</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12305"/>
				<updated>2019-11-20T18:25:46Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o, repventa r&lt;br /&gt;
where o.ofinum=r.ofinum&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; objetivo*0.75;&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum );&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12304</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12304"/>
				<updated>2019-11-20T18:24:16Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T8 Operadores de definición */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o, repventa r&lt;br /&gt;
where o.ofinum=r.ofinum&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; objetivo*0.75;&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum );&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
Intersección,unión y diferencia&lt;br /&gt;
    12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== T8 Operadores de definición ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12303</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12303"/>
				<updated>2019-11-20T18:24:09Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== T7 Subconsultas ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o, repventa r&lt;br /&gt;
where o.ofinum=r.ofinum&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; objetivo*0.75;&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum );&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
Intersección,unión y diferencia&lt;br /&gt;
    12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== T8 Operadores de definición ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12302</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12302"/>
				<updated>2019-11-20T18:23:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T7 Subconsultas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
== T7 Subconsultas ==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o, repventa r&lt;br /&gt;
where o.ofinum=r.ofinum&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; objetivo*0.75;&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum );&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
Intersección,unión y diferencia&lt;br /&gt;
    12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== T8 Operadores de definición ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12301</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12301"/>
				<updated>2019-11-20T18:23:47Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Consultes Complejas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== T7 Subconsultas ===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o, repventa r&lt;br /&gt;
where o.ofinum=r.ofinum&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; objetivo*0.75;&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum );&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
Intersección,unión y diferencia&lt;br /&gt;
    12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== T8 Operadores de definición ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12300</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12300"/>
				<updated>2019-11-20T18:19:14Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T6 Uniones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T8-Ventas&amp;diff=12298</id>
		<title>M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-Ventas</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T8-Ventas&amp;diff=12298"/>
				<updated>2019-11-19T17:46:04Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: Es crea la pàgina amb «1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000. select fabcod, prodcod, descr...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
&lt;br /&gt;
2. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
&lt;br /&gt;
3. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12297</id>
		<title>M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12297"/>
				<updated>2019-11-19T17:43:52Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Consultes complexes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción de Esquema==&lt;br /&gt;
&lt;br /&gt;
===Descripción General===&lt;br /&gt;
&lt;br /&gt;
===Diagrama de Relación de Entidades de Ventas===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_entitats_ventas.jpg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T1-Ventas | T1- Recuperación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T2-Ventas | T2- Restricción y ordenación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T3-Ventas | T3- Funciones de una sola Fila]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T4-Ventas | T4- Funciones de conversión]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T5-Ventas | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-Ventas | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-Ventas | T7- Subconsultas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-Ventas | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Exercicis Repàs SQL|Exercicis Repàs BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-1-HR | Solucions T7-1]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2-HR | Solucions T7-2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | Solucions T9]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T12-HR | Solucions T12]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T13-HR | Solucions T13]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T7-Ventas&amp;diff=12250</id>
		<title>M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-Ventas</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T7-Ventas&amp;diff=12250"/>
				<updated>2019-11-13T18:11:52Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
&lt;br /&gt;
5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
&lt;br /&gt;
9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
 &lt;br /&gt;
10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
&lt;br /&gt;
11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o, repventa r&lt;br /&gt;
where o.ofinum=r.ofinum&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; objetivo*0.75;&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum );&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
Intersección,unión y diferencia&lt;br /&gt;
    12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T7-Ventas&amp;diff=12249</id>
		<title>M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-Ventas</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T7-Ventas&amp;diff=12249"/>
				<updated>2019-11-13T18:11:36Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
&lt;br /&gt;
5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
&lt;br /&gt;
9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
 &lt;br /&gt;
10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
&lt;br /&gt;
 11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o, repventa r&lt;br /&gt;
where o.ofinum=r.ofinum&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; objetivo*0.75;&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum );&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
Intersección,unión y diferencia&lt;br /&gt;
    12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T7-Ventas&amp;diff=12248</id>
		<title>M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-Ventas</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T7-Ventas&amp;diff=12248"/>
				<updated>2019-11-13T18:09:31Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: Es crea la pàgina amb «1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.  &amp;lt;!-- 1. Obtener una lista de los representante...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1. Obtener una lista de los representantes cuyas cuotas son iguales ó superiores al objetivo de la oficina de Atlanta.&lt;br /&gt;
Select nombre, cuota&lt;br /&gt;
From repventa&lt;br /&gt;
where cuota&amp;gt;= (select objetivo&lt;br /&gt;
        from oficina&lt;br /&gt;
        where lower(ciudad)='atlanta');&lt;br /&gt;
Aquest exercici no es pot fer amb joins&lt;br /&gt;
2. Obtener una lista de todos los clientes que fueron contactados por primera vez por Bill Adams.&lt;br /&gt;
&lt;br /&gt;
Select  r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(nombre)='bill adams';&lt;br /&gt;
Select  nombre&lt;br /&gt;
from cliente&lt;br /&gt;
where repcod = (    select repcod&lt;br /&gt;
           from repventa&lt;br /&gt;
           where lower(nombre)='bill adams');&lt;br /&gt;
&lt;br /&gt;
3. Obtener una lista de todos los productos del fabricante ACI cuyas existencias superan a las existencias del producto 41004 del mismo fabricante.&lt;br /&gt;
select *&lt;br /&gt;
from producto&lt;br /&gt;
where lower(fabcod)='aci' and exist &amp;gt; (    select exist&lt;br /&gt;
                        from producto&lt;br /&gt;
                        where lower(fabcod)='aci'&lt;br /&gt;
                            and prodcod='41004');&lt;br /&gt;
select p2.*&lt;br /&gt;
from producto p1, producto p2&lt;br /&gt;
where lower(p1.fabcod)='aci' and  lower(p2.fabcod)='aci' and p1.prodcod='41004' and p2.exist &amp;gt; p1.exist;&lt;br /&gt;
4. Obtener una lista de los representantes que trabajan en las oficinas que han logrado superar su objetivo de ventas.&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
        from oficina   &lt;br /&gt;
        where ventas  &amp;gt;  objetivo);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select nombre&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where r.ofinum=o.ofinum and o.ventas  &amp;gt;  objetivo;&lt;br /&gt;
    5. Obtener una lista de los representantes que no trabajan en las oficinas dirigidas por Larry Fitch.&lt;br /&gt;
select repcod,nombre,ofinum&lt;br /&gt;
from repventa&lt;br /&gt;
where ofinum  not in (select o.ofinum&lt;br /&gt;
            from oficina o, repventa r&lt;br /&gt;
            where o.director= r.repcod and lower(nombre)='larry fitch');&lt;br /&gt;
OJO!!!  No és equivalent aquest codi!!&lt;br /&gt;
select repcod,nombre,o.ofinum&lt;br /&gt;
from repventa r, oficina o&lt;br /&gt;
where o.director= r.repcod and lower(nombre)!='larry fitch';&lt;br /&gt;
6. Obtener una lista de todos los clientes que han solicitado pedidos del fabricante ACI entre enero y junio de 1990.&lt;br /&gt;
select nombre, fecha&lt;br /&gt;
from cliente c, pedido p&lt;br /&gt;
where c.cliecod = p.cliecod and lower(fabcod)='aci' and&lt;br /&gt;
    to_char(fecha,'yyyy-mm') between '1990-01' and '1990-06';&lt;br /&gt;
7. Obtener una lista de los productos de los que se ha tomado un pedido de 25.000  ó más.&lt;br /&gt;
&lt;br /&gt;
8. Obtener una lista de los clientes contactados por Sue Smith que no han solicitado pedidos con importes superiores a 3.000.&lt;br /&gt;
select c.*, r.nombre&lt;br /&gt;
from cliente c, repventa r&lt;br /&gt;
where c.repcod=r.repcod and lower(r.nombre)='sue smith' and&lt;br /&gt;
        c.cliecod not in  (    select cliecod                                         from pedido                                            where importe &amp;gt; 3000);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    9. Obtener una lista de las oficinas en donde haya algún representante cuya cuota sea más del 55% del objetivo de la oficina.&lt;br /&gt;
select *&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
select o.*&lt;br /&gt;
from oficina o,repventa  r&lt;br /&gt;
where  o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
Altra forma de fer-lo&lt;br /&gt;
select *&lt;br /&gt;
from oficina&lt;br /&gt;
where ofinum  in ( select ofinum&lt;br /&gt;
        from repventa  r, ofinum o&lt;br /&gt;
        where o.ofinum=r.ofinum and r.cuota &amp;gt; o.objetivo*0.55);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    10. Obtener una lista de los representantes que han tomado algún pedido cuyo importe sea más del 10% de de su cuota.&lt;br /&gt;
Select *&lt;br /&gt;
from repventa&lt;br /&gt;
where repcod in (select repcod&lt;br /&gt;
            from pedido&lt;br /&gt;
            where importe &amp;gt; 0.1*cuota);&lt;br /&gt;
select r.*&lt;br /&gt;
from repventa r, pedido p&lt;br /&gt;
where r.repcod=p.repcod and importe &amp;gt; cuota*0.1;&lt;br /&gt;
    11. Obtener una lista de las oficinas en las cuales el total de ventas de sus representantes han alcanzado un importe de ventas que supera el 75 % del objetivo de la oficina. Mostrar también el objetivo de cada oficina (suponed que el campo ventas de oficina no existe).&lt;br /&gt;
&lt;br /&gt;
select o.ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o, repventa r&lt;br /&gt;
where o.ofinum=r.ofinum&lt;br /&gt;
group by o.ofinum, ciudad, objetivo&lt;br /&gt;
having sum(r.ventas) &amp;gt; objetivo*0.75;&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where objetivo*0.75 &amp;lt; (select sum(ventas)&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum );&lt;br /&gt;
select ofinum, ciudad, objetivo&lt;br /&gt;
from oficina o&lt;br /&gt;
where ofinum in (select ofinum&lt;br /&gt;
            from repventa&lt;br /&gt;
            where ofinum=o.ofinum&lt;br /&gt;
            group by ofinum&lt;br /&gt;
            having sum(ventas) &amp;gt; o.objetivo*0.75);&lt;br /&gt;
Intersección,unión y diferencia&lt;br /&gt;
    12. Obtener una lista de todos los productos cuyo precio exceda de 3500 y de los cuales hay algún pedido con un importe superior a 35000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    intersect&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
en lloc de:&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 and precio &amp;gt;3500 ;&lt;br /&gt;
13. Obtener una lista de todos los productos cuyo precio más IVA exceda de 3.500 o bien haya algún pedido cuyo importe más IVA exceda de 30.000.&lt;br /&gt;
select fabcod, prodcod, descrip&lt;br /&gt;
from producto&lt;br /&gt;
where precio &amp;gt;3500&lt;br /&gt;
    union&lt;br /&gt;
select pe.fabcod,pe.prodcod,descrip&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pr.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 ;&lt;br /&gt;
&lt;br /&gt;
select  distinct pe.fabcod||pe.prodcod Codi ,descrip producte&lt;br /&gt;
from pedido pe, producto pr&lt;br /&gt;
where pe.fabcod||pe.prodcod = pr.fabcod||pr.prodcod and importe &amp;gt; 35000 or precio &amp;gt;3500 ;&lt;br /&gt;
14. Obtener los códigos de los representantes que son directores de oficina y que no han tomado ningún pedido.&lt;br /&gt;
select director&lt;br /&gt;
from oficina&lt;br /&gt;
    except&lt;br /&gt;
select repcod&lt;br /&gt;
from pedido;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12240</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12240"/>
				<updated>2019-11-12T16:25:02Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Consultes complexes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
 &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12239</id>
		<title>M2 - Bases de dades / Solucions UF2 BD HR: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_HR:_Llenguatges_SQL&amp;diff=12239"/>
				<updated>2019-11-12T16:24:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Consultes simples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Solució Exercicis BD HR==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T1-HR | T1- Recuperación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T2-HR | T2- Restricción y ordenación de datos]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T3-HR | T3- Funciones de una sola Fila]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T4-HR | T4- Funciones de conversión]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T5-HR | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T6-HR | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-HR | T7- Subconsultas]]&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T8-HR | T8- Operadores de definición]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12238</id>
		<title>M2 - Bases de dades / Exercicis UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12238"/>
				<updated>2019-11-12T16:18:05Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Consultes complexes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Descripción de Esquema==&lt;br /&gt;
&lt;br /&gt;
===Descripción General===&lt;br /&gt;
&lt;br /&gt;
===Diagrama de Relación de Entidades de Ventas===&lt;br /&gt;
&lt;br /&gt;
[[Fitxer:UF2_entitats_ventas.jpg|500px|center]]&lt;br /&gt;
&lt;br /&gt;
==Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T1-Ventas | T1- Recuperación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T2-Ventas | T2- Restricción y ordenación de datos]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T3-Ventas | T3- Funciones de una sola Fila]]&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T4-Ventas | T4- Funciones de conversión]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T5-Ventas | T5- Funciones de grupo]]&lt;br /&gt;
&lt;br /&gt;
===Consultes complexes===&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-Ventas | T6- Uniones]] &lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T7-Ventas | T7- Subconsultas]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T8-Ventas | T8- Operadores de definición]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Repàs BD HR===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2 BD HR: Exercicis Repàs SQL|Exercicis Repàs BD HR]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de manipulació de dades===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T9-HR | T9- Manipulación de datos]]&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Llenguatge de definició de dades===&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T10-HR | T10- Crear y gestionar tablas]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T11-HR | T11- Creación de otros objetos de esquema]]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-1-HR | Solucions T7-1]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T7-2-HR | Solucions T7-2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T9-HR | Solucions T9]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T12-HR | Solucions T12]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions T13-HR | Solucions T13]]&lt;br /&gt;
&lt;br /&gt;
:*[[M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Solucions Repàs consultes HR | Solucions Repàs consultes HR]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12213</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12213"/>
				<updated>2019-11-08T15:09:53Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T6 Uniones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12202</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12202"/>
				<updated>2019-11-06T18:27:27Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* T6 Uniones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12201</id>
		<title>M2 - Bases de dades / Solucions UF2 BD Ventes: Llenguatges SQL</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Solucions_UF2_BD_Ventes:_Llenguatges_SQL&amp;diff=12201"/>
				<updated>2019-11-06T18:27:20Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: /* Consultes Complejas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Solució Exercicis BD Ventas==&lt;br /&gt;
&lt;br /&gt;
===Consultes simples===&lt;br /&gt;
====T1 Recuperación de datos====&lt;br /&gt;
====T2 Restricción y ordenación de datos====&lt;br /&gt;
====T3 Funciones de una sola Fila====&lt;br /&gt;
====T4 Funciones de Conversion====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T5 Funciones de Grupo====&lt;br /&gt;
&lt;br /&gt;
1- Quina és la quota promig mostrada com a &amp;quot;prom_cuota&amp;quot; i la venda promig mostrades com a &amp;quot;prom_ventas&amp;quot; dels venedors?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(cuota) AS prom_ventas, AVG(ventas) AS prom_ventas&lt;br /&gt;
	FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     prom_ventas     |     prom_ventas&lt;br /&gt;
---------------------+---------------------&lt;br /&gt;
 563509.400000000000 | 550000.000000000000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Quin és el rendiment de quota promig dels venedors (percentatge de les vendes respecte la quota)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(100*(VENTAS/CUOTA))&lt;br /&gt;
		FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3- Quines són les quotes totals com a &amp;quot;t_cuota&amp;quot; i vendes totals com a &amp;quot;t_ventas&amp;quot; de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(cuota) AS t_cuota, SUM(ventas) AS t_ventas&lt;br /&gt;
FROM repventas;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 t_cuota  |   t_ventas&lt;br /&gt;
----------+----------&lt;br /&gt;
2700000.00|2893532.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Calcula el preu mig dels productes del fabricant amb identificador &amp;quot;aci&amp;quot;.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(precio) &lt;br /&gt;
FROM productos &lt;br /&gt;
WHERE id_fab='aci';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5- Quines són les quotes assignades mínima i màxima?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(CUOTA), MAX(CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min	|      max&lt;br /&gt;
---------+---------&lt;br /&gt;
200000.00|350000.00&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Quina és la data de comanda més antiga?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MIN(FECHA_PEDIDO)&lt;br /&gt;
FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
min&lt;br /&gt;
----------&lt;br /&gt;
01-04-1989&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7- Quin és el major percentatge de rendiment de vendes respecte les quotes de tots els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT MAX(100* VENTAS/CUOTA)&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
max&lt;br /&gt;
------------&lt;br /&gt;
135.44&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
8- Quants clients hi ha?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE)&lt;br /&gt;
FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
   21&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
9- Quants venedors superen la seva quota?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NOMBRE)&lt;br /&gt;
FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    7&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
10- Quantes comandes amb un import superior a 25000 hi ha en els registres?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT (*)&lt;br /&gt;
FROM PEDIDOS&lt;br /&gt;
WHERE IMPORTE&amp;gt;25000;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count&lt;br /&gt;
-----&lt;br /&gt;
    4&lt;br /&gt;
(1 row)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
11- Trobar l'import mitjà de les comandes, l'import total de les comandes, l'import mitjà de les comandes com a percentatge del límit de crèdit del client i l'import mitjà de comandes com a percentatge de la quota del venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORTE), SUM(IMPORTE), 	(100*AVG(IMPORTE/LIMITE_CREDITO),&lt;br /&gt;
(100*AVG(IMPORTE/CUOTA);&lt;br /&gt;
FROM PEDIDOS, CLIENTES, REPVENTAS&lt;br /&gt;
WHERE CLIE=NUM_CLIE,&lt;br /&gt;
AND REP=NUM_EMPL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
12- Compta les files que hi ha a repventas, les files del camp vendes i les del camp quota.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(*), COUNT(VENTAS), COUNT(CUOTA)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
count|count|count&lt;br /&gt;
-----+-----+-----&lt;br /&gt;
   10|   10|    9&lt;br /&gt;
(1 row)&lt;br /&gt;
Observa què la tercera columna és nou i no pas deu.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
13- Mostra que la suma de restar (vendes menys quota) és diferent que sumar vendes i restar-li la suma de quotes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT SUM(VENTAS),SUM(CUOTA),SUM(VENTAS-CUOTA),&lt;br /&gt;
 (SUM(VENTAS)-SUM(CUOTA))&lt;br /&gt;
FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       sum|       sum|      sum| ?column?&lt;br /&gt;
----------+----------+---------+---------&lt;br /&gt;
2893532.00|2700000.00|117547.00|193532.00&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
14- Quants títols diferents tenen els venedors?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT TITULO)&lt;br /&gt;
	FROM REPVENTAS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
15- Quantes oficines de vendes tenen venedors que superen les seves quotes?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(DISTINCT OFICINA_REP)&lt;br /&gt;
	FROM REPVENTAS&lt;br /&gt;
WHERE VENTAS&amp;gt;CUOTA;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
16- De la taula clients quants clients diferents i venedors diferents hi ha.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT COUNT(NUM_CLIE), COUNT(DISTINCT REP_CLIE) FROM CLIENTES;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
17- De la taula comandes seleccionar quantes comandes diferents i clients diferents hi ha&lt;br /&gt;
&lt;br /&gt;
18- Calcular la mitjana dels imports de les comandes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT AVG(IMPORT) FROM PEDIDOS;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
19- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
20- Quina és l'import promig de les comandes de cada venedor?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, avg(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep |       avg&lt;br /&gt;
-----+------------------&lt;br /&gt;
 101 |  8876.0000000000&lt;br /&gt;
 102 |  5694.0000000000&lt;br /&gt;
 103 |  1350.0000000000&lt;br /&gt;
 105 |  7865.4000000000&lt;br /&gt;
 106 | 16479.0000000000&lt;br /&gt;
 107 | 11477.3333333333&lt;br /&gt;
 108 |  8376.1428571429&lt;br /&gt;
 109 |  3552.5000000000&lt;br /&gt;
 110 | 11566.0000000000&lt;br /&gt;
(9 rows) &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
21- Quin és el rang (màxim i mínim) de quotes dels venedors per cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, min(cuota), max(cuota)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep |    min    |    max&lt;br /&gt;
-------------+-----------+-----------&lt;br /&gt;
          11 | 275000.00 | 300000.00&lt;br /&gt;
          12 | 200000.00 | 300000.00&lt;br /&gt;
          13 | 350000.00 | 350000.00&lt;br /&gt;
          21 | 350000.00 | 350000.00&lt;br /&gt;
          22 | 300000.00 | 300000.00&lt;br /&gt;
        NULL |      NULL |      NULL&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
22- Quants venedors estan asignats a cada oficina?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT oficina_rep, count(*)&lt;br /&gt;
from repventas&lt;br /&gt;
group by oficina_rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 oficina_rep | count&lt;br /&gt;
-------------+-------&lt;br /&gt;
          11 |     2&lt;br /&gt;
          12 |     3&lt;br /&gt;
          13 |     1&lt;br /&gt;
          21 |     2&lt;br /&gt;
          22 |     1&lt;br /&gt;
        NULL |     1&lt;br /&gt;
(6 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
23- Per cada venedor calcular quants clients diferents ha atès (ha fet comandes)?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select count(distinct clie), 'clients pel rep. de vendes' as &amp;quot;&amp;quot;, rep&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 count |                            | rep&lt;br /&gt;
-------+----------------------------+-----&lt;br /&gt;
     3 | clients pel rep. de vendes | 101&lt;br /&gt;
     3 | clients pel rep. de vendes | 102&lt;br /&gt;
     1 | clients pel rep. de vendes | 103&lt;br /&gt;
     2 | clients pel rep. de vendes | 105&lt;br /&gt;
     2 | clients pel rep. de vendes | 106&lt;br /&gt;
     2 | clients pel rep. de vendes | 107&lt;br /&gt;
     3 | clients pel rep. de vendes | 108&lt;br /&gt;
     1 | clients pel rep. de vendes | 109&lt;br /&gt;
     1 | clients pel rep. de vendes | 110&lt;br /&gt;
(9 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
24- Calcula el total dels imports de les comandes fetes per cada client a cada vendedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT rep, clie, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by rep, clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 rep | clie |   sum&lt;br /&gt;
-----+------+----------&lt;br /&gt;
 101 | 2102 |  3978.00&lt;br /&gt;
 101 | 2108 |   150.00&lt;br /&gt;
 101 | 2113 | 22500.00&lt;br /&gt;
 102 | 2106 |  4026.00&lt;br /&gt;
 102 | 2114 | 15000.00&lt;br /&gt;
 102 | 2120 |  3750.00&lt;br /&gt;
 103 | 2111 |  2700.00&lt;br /&gt;
 105 | 2103 | 35582.00&lt;br /&gt;
 105 | 2111 |  3745.00&lt;br /&gt;
 106 | 2101 |  1458.00&lt;br /&gt;
 106 | 2117 | 31500.00&lt;br /&gt;
 107 | 2109 | 31350.00&lt;br /&gt;
 107 | 2124 |  3082.00&lt;br /&gt;
 108 | 2112 | 47925.00&lt;br /&gt;
 108 | 2114 |  7100.00&lt;br /&gt;
 108 | 2118 |  3608.00&lt;br /&gt;
 109 | 2108 |  7105.00&lt;br /&gt;
 110 | 2107 | 23132.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
25- El mateix que a la qüestió anterior, però ordenat per client i dintre de client per venedor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT clie, rep, sum(importe)&lt;br /&gt;
from pedidos&lt;br /&gt;
group by clie, rep&lt;br /&gt;
order by clie, rep; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clie | rep |   sum&lt;br /&gt;
------+-----+----------&lt;br /&gt;
 2101 | 106 |  1458.00&lt;br /&gt;
 2102 | 101 |  3978.00&lt;br /&gt;
 2103 | 105 | 35582.00&lt;br /&gt;
 2106 | 102 |  4026.00&lt;br /&gt;
 2107 | 110 | 23132.00&lt;br /&gt;
 2108 | 101 |   150.00&lt;br /&gt;
 2108 | 109 |  7105.00&lt;br /&gt;
 2109 | 107 | 31350.00&lt;br /&gt;
 2111 | 103 |  2700.00&lt;br /&gt;
 2111 | 105 |  3745.00&lt;br /&gt;
 2112 | 108 | 47925.00&lt;br /&gt;
 2113 | 101 | 22500.00&lt;br /&gt;
 2114 | 102 | 15000.00&lt;br /&gt;
 2114 | 108 |  7100.00&lt;br /&gt;
 2117 | 106 | 31500.00&lt;br /&gt;
 2118 | 108 |  3608.00&lt;br /&gt;
 2120 | 102 |  3750.00&lt;br /&gt;
 2124 | 107 |  3082.00&lt;br /&gt;
(18 rows)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Consultes Complejas===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====T6 Uniones====&lt;br /&gt;
&lt;br /&gt;
1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT  AVG(importe)&lt;br /&gt;
FROM pedidos JOIN clientes ON clie=num_clie;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select id_fab, id_producto, descripcion&lt;br /&gt;
from productos&lt;br /&gt;
     join pedidos&lt;br /&gt;
     on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where fecha_pedido between '1989-1-1' and '1989-12-31'&lt;br /&gt;
group by id_producto, descripcion&lt;br /&gt;
order by sum(importe);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select director.num_empl, director.nombre, sum(subordinado.ventas)&lt;br /&gt;
from repventas as director&lt;br /&gt;
    join repventas as subordinado&lt;br /&gt;
    on (subordinado.director = director.num_empl)&lt;br /&gt;
where director.director is not null&lt;br /&gt;
group by director.num_empl, director.nombre;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. A igualtat de nombre de clients es volen ordenats per ordre decreixent d'existències i, a igualtat d'existències, per descripció. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select productos.producto, count(distinct pedidos.clie) as &amp;quot;Numero Clients&amp;quot;, productos.existencias, productos.descripcion&lt;br /&gt;
from pedidos&lt;br /&gt;
    join productos&lt;br /&gt;
    on (pedidos.producto = productos.id_producto)&lt;br /&gt;
group by pedidos.producto, productos.existencias&lt;br /&gt;
order by count(distinct pedidos.clie) desc, productos.existencias desc, productos.descripcion&lt;br /&gt;
limit 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias&lt;br /&gt;
----------+----------------+-------------&lt;br /&gt;
 41003    |              3 |         207&lt;br /&gt;
 xk47     |              3 |          38&lt;br /&gt;
 41003    |              3 |           3&lt;br /&gt;
 2a45c    |              2 |         210&lt;br /&gt;
 41002    |              2 |         167&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select num_clie, empresa&lt;br /&gt;
from clientes&lt;br /&gt;
    join pedidos on (num_clie = clie)&lt;br /&gt;
	join productos on ((id_fab, id_producto) = (fab, producto))&lt;br /&gt;
where descripcion not like '%bisagra%'&lt;br /&gt;
    and not like '%Bisagra%'&lt;br /&gt;
group by num_clie, empresa&lt;br /&gt;
having count(distinct fab) &amp;gt; 1;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select oficina, ciudad&lt;br /&gt;
from oficinas&lt;br /&gt;
    join repventas as trabajadores&lt;br /&gt;
    on (oficina = trabajadores.oficina_rep)&lt;br /&gt;
	join pedidos&lt;br /&gt;
	on (trabajadores.num_empl = rep)&lt;br /&gt;
	join repventas as directores&lt;br /&gt;
	on (dir = directores.num_empl)&lt;br /&gt;
group by oficina, ciudad, directores.nombre&lt;br /&gt;
order by count(distinct clie) desc, directores.nombre asc;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T6-Ventas&amp;diff=12194</id>
		<title>M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-Ventas</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T6-Ventas&amp;diff=12194"/>
				<updated>2019-11-05T17:55:58Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. Ordenar per numero de clients. En cas que hi hagui el mateix numero de clients, ordenar per existencies. Si es repeteixen els n clients i les existencies, ordenar per descripció del producte. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias | descripcio&lt;br /&gt;
----------+----------------+-------------+-------------&lt;br /&gt;
 41003    |              3 |         207 |&lt;br /&gt;
 xk47     |              3 |          38 |&lt;br /&gt;
 41003    |              3 |           3 |&lt;br /&gt;
 2a45c    |              2 |         210 |&lt;br /&gt;
 41002    |              2 |         167 |&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Para limitar el numero de resultados (sin perder el orden) utilizamos el ROWNUM, que acumula el numero de registros. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
  from  &lt;br /&gt;
( select * &lt;br /&gt;
    from emp &lt;br /&gt;
   order by sal desc ) &lt;br /&gt;
 where ROWNUM &amp;lt;= 5;&lt;br /&gt;
&lt;br /&gt;
En el ejemplo anterior mostramos los 5 empleados que más cobran&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
--- Ejercicios Alumnos Forum ---&lt;br /&gt;
&lt;br /&gt;
7- Muestre el numero de pedidos de cada empres.&lt;br /&gt;
&lt;br /&gt;
8- Muestre a los vendedores y sus clientes que han comprado mas de 2 veces.&lt;br /&gt;
&lt;br /&gt;
9- MUESTRAME EL NOMBRE EDAD CONTRADO Y CIUDAD DE DONDE VIVE.&lt;br /&gt;
&lt;br /&gt;
10- Muestre el nombre, la cuota de los vendedores y sus numeros de pedidos y ordena los pedidos de mayor a menor&lt;br /&gt;
&lt;br /&gt;
11- Muestra la edad y el nombre de los vendedores junto con el numero de empleado y el numero de cliente que tiene cada vendedor, ordena por edad y que los vendedores ganen más de 2000&lt;br /&gt;
&lt;br /&gt;
12- Muéstrame el nombre de todos los empleados con sus receptivos directores, las ciudades donde se encuentra cada oficina de los empleados y el numero de ventas que a echo cada empleado en orden ascendente.&lt;br /&gt;
&lt;br /&gt;
13- Muestrame el numero de empleados el nombre y usame un join con clientes en el cual me muestre el rep_clie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
14- Mmuestra el nombre su director y las ventas y quiero saber el numero de pedido su importe y la fecha del pedido.&lt;br /&gt;
&lt;br /&gt;
15- Haz una contulta de cual es el importe minimo de la empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
16- Escribe una consulta para mostrar el numero del empleado, ventas y el numero de la oficina.&lt;br /&gt;
&lt;br /&gt;
17- Haz una consulta que te diga el nombre y la ciudad de cada vendedor&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	<entry>
		<id>http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T6-Ventas&amp;diff=12193</id>
		<title>M2 - Bases de dades / Exercicis UF2: Llenguatges SQL / Exercicis T6-Ventas</title>
		<link rel="alternate" type="text/html" href="http://wikiserver.infomerce.es/index.php?title=M2_-_Bases_de_dades_/_Exercicis_UF2:_Llenguatges_SQL_/_Exercicis_T6-Ventas&amp;diff=12193"/>
				<updated>2019-11-05T17:54:45Z</updated>
		
		<summary type="html">&lt;p&gt;Dtriano: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1- Calcula la mitjana de l'import d'una comanda realitzada pel client amb nom d'empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2- Es desitja un llistat dels productes amb les seves descripcions, ordenat per la suma total d'imports facturats (pedidos) de cada producte de l'any 1989.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 id_producto |    descripcion    | suma de importe&lt;br /&gt;
-------------+-------------------+-----------------&lt;br /&gt;
 41002       | Articulo Tipo 2   |          760.00&lt;br /&gt;
 2a45c       | V Stago Trinquete |         1896.00&lt;br /&gt;
 2a44g       | Pasador Bisanum_cliegra   |         2100.00&lt;br /&gt;
 41004       | Articulo Tipo 4   |         7956.00&lt;br /&gt;
 4100z       | Montador          |        15000.00&lt;br /&gt;
 4100y       | Extractor         |        27500.00&lt;br /&gt;
 2a44l       | Bisagra Izqda.    |        31500.00&lt;br /&gt;
(7 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3-Per a cada director (de personal, no d'oficina) excepte per al gerent (el venedor que no té director), vull saber el total de vendes dels seus subordinats. Mostreu codi i nom dels directors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_empl |   nombre    |    sum&lt;br /&gt;
----------+-------------+-----------&lt;br /&gt;
      101 | Dan Roberts |  75985.00&lt;br /&gt;
      104 | Bob Smith   | 960359.00&lt;br /&gt;
      108 | Larry Fitch | 660092.00&lt;br /&gt;
(3 filas)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4- Quins són els 5 productes que han estat venuts a més clients diferents? Mostreu el número de clients per cada producte. Ordenar per numero de clients. En cas que hi hagui el mateix numero de clients, ordenar per existencies. Si es repeteixen els n clients i les existencies, ordenar per descripció del producte. Mostreu tots els camps pels quals s'ordena.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 producto | Numero Clients | existencias | descripcio&lt;br /&gt;
----------+----------------+-------------+-------------&lt;br /&gt;
 41003    |              3 |         207 |&lt;br /&gt;
 xk47     |              3 |          38 |&lt;br /&gt;
 41003    |              3 |           3 |&lt;br /&gt;
 2a45c    |              2 |         210 |&lt;br /&gt;
 41002    |              2 |         167 |&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Para limitar el numero de resultados (sin perder el orden) utilizamos el ROWNUM, que acumula el numero de registros. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
select *&lt;br /&gt;
  from  &lt;br /&gt;
( select * &lt;br /&gt;
    from emp &lt;br /&gt;
   order by sal desc ) &lt;br /&gt;
 where ROWNUM &amp;lt;= 5;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En el ejemplo anterior mostramos los 5 empleados que más cobran&lt;br /&gt;
&lt;br /&gt;
5- Es vol llistar el clients (codi i empresa) tals que no hagin comprat cap tipus de frontissa (&amp;quot;bisagra&amp;quot; en castellà, figura a la descripció) i hagin comprat articles de més d'un fabricant diferent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 num_clie |  empresa&lt;br /&gt;
----------+-----------&lt;br /&gt;
     2103 | Acme Mfg.&lt;br /&gt;
(1 fila)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6- Llisteu les oficines per ordre descendent de nombre total de clients diferents amb comandes (pedidos) realizades pels venedors d'aquella oficina, i, a igualtat de clients, ordenat per ordre ascendent del nom del director de l'oficina. Només s'ha de mostrar el codi i la ciutat de l'oficina.&lt;br /&gt;
&lt;br /&gt;
--- Ejercicios Alumnos Forum ---&lt;br /&gt;
&lt;br /&gt;
7- Muestre el numero de pedidos de cada empres.&lt;br /&gt;
&lt;br /&gt;
8- Muestre a los vendedores y sus clientes que han comprado mas de 2 veces.&lt;br /&gt;
&lt;br /&gt;
9- MUESTRAME EL NOMBRE EDAD CONTRADO Y CIUDAD DE DONDE VIVE.&lt;br /&gt;
&lt;br /&gt;
10- Muestre el nombre, la cuota de los vendedores y sus numeros de pedidos y ordena los pedidos de mayor a menor&lt;br /&gt;
&lt;br /&gt;
11- Muestra la edad y el nombre de los vendedores junto con el numero de empleado y el numero de cliente que tiene cada vendedor, ordena por edad y que los vendedores ganen más de 2000&lt;br /&gt;
&lt;br /&gt;
12- Muéstrame el nombre de todos los empleados con sus receptivos directores, las ciudades donde se encuentra cada oficina de los empleados y el numero de ventas que a echo cada empleado en orden ascendente.&lt;br /&gt;
&lt;br /&gt;
13- Muestrame el numero de empleados el nombre y usame un join con clientes en el cual me muestre el rep_clie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
14- Mmuestra el nombre su director y las ventas y quiero saber el numero de pedido su importe y la fecha del pedido.&lt;br /&gt;
&lt;br /&gt;
15- Haz una contulta de cual es el importe minimo de la empresa &amp;quot;Acme Mfg.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
16- Escribe una consulta para mostrar el numero del empleado, ventas y el numero de la oficina.&lt;br /&gt;
&lt;br /&gt;
17- Haz una consulta que te diga el nombre y la ciudad de cada vendedor&lt;/div&gt;</summary>
		<author><name>Dtriano</name></author>	</entry>

	</feed>