Sie sind auf Seite 1von 17

UNIVERSIDAD

NACIONAL
AUTNOMA DE
MXICO
FACULTAD DE INGENIERA
Bases de datos
Prctica 7:
Data Query Language (DQL)
Alumno:Guillermo Prez Villarreal
Profesor:Ing. Jorge Alberto Rodrguez Campos

Semestre:2015-2
Fecha de entrega: 26 de mayo del 2015

Introduccin:
Una de las funciones ms importantes de una base de datos es poder
recuperar los datos almacenados, pero muchas veces no es suficiente con
obtener datos de una sola tabla por lo que es necesario conocer como
podemos obtener los datos necesarios con la menor cantidad de instrucciones
usando las herramientas que nos ofrece la base de datos, evitando as el uso
excesivo de memoria para realizar consultas que tengan ciertas condiciones.
En esta prctica se hara uso de la instruccin SELECT para poder obtener datos
a partir de una base de datos en Oracle creada y poblada con anticipacin.

Objetivos:

Practicar el uso de la instruccin SELECT.

Desarrollo:
1.-Genere un reporte que muestre nombre del artculo, clave, clave del status
de todos los artculos donados por el artista William Harvey. Emplear sintaxis
estndar.

SELECT a.nombre, a.clave_articulo, s.clave FROM


articulo a JOIN articulo_famoso f ON a.articulo_id=f.articulo_id
JOIN status_articulo s ON a.status_articulo_id=s.status_articulo_id
WHERE f.nombre_completo=William Harvey;

vlvula electrnica P1887DC000230


Canada Dry P1865DC000127
balanza para cartas

EN SUBASTA

VENDIDO

P1825DC000241

ENTREGADO

2.-Generar un reporte que muestre el id, nombre y clave de todos los artculos
que hayan sido entregados al cliente (status= ENTREGADO, no emplear el id
del status) en cualquier subasta y que hayan sido donados por 'BELGICA'.
Emplear natural join.

SELECT articulo_id, nombre, clave_articulo FROM


articulo a JOIN status_articulo s USING(status_articulo_id)
JOIN articulo_donado d USING(articulo_id)
JOIN pais p USING(pais_id)
WHERE s.clave='ENTREGADO' AND
p.descripcion='BELGICA';

321 Tranva English Electric Co (cortesa Presidente de la AATC Lucio


Pealoza)
D1890DC000321
393

Motocicleta Guzzi Lodola 175cc (cortesa beamotos.com)


D1911DC000393

3-Empleando natural join, generar un reporte que muestre el id, nombre, precio
inicial, precio de venta, tipo de articulo, nombre y fecha inicio de la subasta de
todos los artculos que compr el cliente MARICELA PAEZ MARTINEZ durante
las subastas realizadas en el 2010. Nota: Un artculo se considera comprado
cuando se registra el cliente que lo adquiri y se registra el precio de venta.

SELECT articulo_id, a.nombre, precio_inicial, precio_venta, tipo_Articulo,


s.nombre, fecha_inicio FROM
articulo a JOIN subasta s USING(subasta_id)
JOIN subasta_venta v USING(articulo_id)
JOIN cliente c USING(cliente_id)
WHERE c.nombre='MARICELA' AND c.apellido_paterno='PAEZ' AND
c.apellido_materno='MARTINEZ' AND
s.fecha_inicio>=TO_DATE('01/01/2010','DD/MM/YYYY') AND
s.fecha_fin<=TO_DATE('31/12/2010','DD/MM/YYYY');

167

llamador (altiquitaca.com)
758307.25
FESTIVAL-HEROICA PUEBLA DE ZARAGOZA

909968.7
P
2010-03-25 00:00:00

4.-Generar un reporte que muestre los datos de los clientes (Nombre, apellidos)
y los datos de sus tarjetas (numero de tarjeta, mes de vigencia, ao de
vigencia) que ya hayan expirado. Nota, para validar si ya la tarjeta expir
emplear el mes y ao de vigencia.

SELECT c.nombre, c.apellido_paterno, c.apellido_materno, t.numero_tarjeta,


t.mes_vigencia, t.anio_vigencia FROM
cliente c JOIN tarjeta_cliente t ON c.cliente_id=t.cliente_id
WHERE t.anio_vigencia<=15 AND t.mes_vigencia<=05;

GALILEA

GOMEZ

GONZALEZ 8814166453254242

03

10

MIRIAM

ROMERO

GONZALEZ 4257702851084482

01

14

ALEJANDRO ALVAREZ

GOMEZ

3010382685631874

04

13

ALEJANDRO BENITEZ

GARCIA

2454277772701500

05

10

PABLO

SANCHEZ

0504587478752466

04

09

MEDINA

DAVID SUAREZ
DIEGO

GONZALEZ 7628102330566183

GIMENEZ

SOTO 0335150101272162

LUCIA SILVA SILVA 2365088641327521

02

10

05

11

04

11

09

ALBA FERREYRA

GONZALEZ 0756658227547800

JUAN ANTONIO

PERALTA

MARTINEZ

01

4014471512034510

ESTELA

NAVARRO

RODRGUEZ 6406321238706111

03

GERARDO

CACERES

MUOZ 5533103361442560

13

LUZ

ROLDAN

ROJAS 7222404862042018

04

MENDEZ

AZUCENA

HERNANDEZ CONTRERAS 8668263213042430

MARICELA

PAEZ MARTINEZ

JORGE BARRIOS
MIRIAM

SILVA 0473830181702443

FLORES

OLIVERA

JORGE BRAVO

04

04

15
02

02

12

3224287282887507

02

14

3063467750881576

LUNA 3441365171854058

02

12

11

5673324412656608

CASTRO

13

13

GERARDO

JORGE AGERO

DIAZ 6344777140631183

02

01

12

03

14

12

JORGE BRAVO
PABLO

LUNA 0608484380706246

TOLEDO

CABRERA

02

14

1523023766045442

DAVID VELAZQUEZ RIOS 5376164872107787

03

03

10

12

5-Generar un reporte que muestre nombre, clave, tipo, ao de hallazgo precio


inicial y precio venta (para los que ya fueron vendidos) de todos los artculos
que sean de tipo arqueolgico, y que tengan un precio inicial mayor a
$800,000. Emplear notacin SQL estndar.

SELECT a.nombre, a.clave_articulo, a.tipo_articulo, q.anio_hallazgo,


a.precio_inicial, v.precio_venta FROM
articulo a JOIN articulo_arqueologico q ON a.articulo_id=q.articulo_id
LEFT JOIN subasta_venta v ON a.articulo_id=v.articulo_id
WHERE a.precio_inicial>=800000;

Espejo de roble

A1948DC000008

1722 993598.06

Espejo dorado

A1910DC000011

1833 980025.44

1117229

Espejo de suelo para vestidor regulable


805174.5

A1938DC000018

Bandeja metal plateado Isabelina


883753.12

A1903DC000028

Azafata metal bao plateado final s.XIX


937699.56
Azafata metal plateado Isabelina
989644.06

A1846DC000031

A1842DC000032

1644

1778
A

1643

1792

Candelabros (2 piezas) mrmol, bronce, final s.XIX A1831DC000049


1585 826057.12

Candelabros (2 piezas) metal fundicin, poca Victoriana A1906DC000050


1767 905915.06 1241103.63

Guarnicin para chimenea en bronce, poca Louis XVI


1862 825774.56 982671.73

Escultura perro

A1861DC000060

A1912DC000058

1555 921863.69

6.-Generar un reporte que muestre nombre, apellidos, email, de todos los


clientes cuya ocupacin sea ABOGADO, y en caso de tener registrado una o
ms tarjetas de crdito, incluir el tipo de tarjeta. Emplear notacin SQL anterior
compatible con Oracle.

SELECT c.nombre, c.apellido_paterno, c.apellido_materno, c.email,


t.tipo_tarjeta FROM
cliente c, tarjeta_cliente t
WHERE c.cliente_id=t.cliente_id(+) AND c.ocupacion='ABOGADO';

ESTELA

NAVARRO

RODRGUEZ estela55@webmail.com MASTER CARD

SARA ORTIZ RODRIGUEZ sara31@terra.com.mx


ESTELA

NAVARRO

RODRGUEZ estela55@webmail.com VISA

NAHIAVERA CENTENO

nahia51@gmail.com

MARIA

MARTINEZ

CASTRO

MASTER CARD

maria29@gmail.com

7.-Suponga que se desea retirar del catlogo a todos los artculos que tengan
un precio inicial de ms de 900,000, siempre y cuando el artculo todava no
inicie el proceso de subasta, es decir, el artculo no debe tener status EN
SUBASTA, ENTREGADO O VENDIDO. Empleando operadores del lgebra
relacional, determine el id, nombre, clave, precio inicial y status de artculos
que se deben retirar.

SELECT a.articulo_id, a.nombre, a.clave_articulo, a.precio_inicial, s.clave FROM


articulo a JOIN status_articulo s ON a.status_articulo_id=s.status_articulo_id
WHERE a.precio_inicial>=900000
MINUS
SELECT a.articulo_id, a.nombre, a.clave_articulo, a.precio_inicial, s.clave FROM
articulo a JOIN status_articulo s ON a.status_articulo_id=s.status_articulo_id
WHERE s.clave='EN SUBASTA' AND a.precio_inicial>=900000
MINUS

SELECT a.articulo_id, a.nombre, a.clave_articulo, a.precio_inicial, s.clave FROM


articulo a JOIN status_articulo s ON a.status_articulo_id=s.status_articulo_id
WHERE s.clave='ENTREGADO' AND a.precio_inicial>=900000
MINUS
SELECT a.articulo_id, a.nombre, a.clave_articulo, a.precio_inicial, s.clave FROM
articulo a JOIN status_articulo s ON a.status_articulo_id=s.status_articulo_id
WHERE s.clave='VENDIDO'; AND a.precio_inicial>=900000;

Espejo de roble

A1948DC000008

83

mquina de colchonero

P1862DC000083

936411.25

REGISTRADO

120

calentador a querosene

P1911DC000120

926589.56

REGISTRADO

176

mesita de luz

205

reproductor de magazines
REGISTRADO

219

telfono de baquelita

P1916DC000176

993598.06

917693.06

P1873DC000205

P1889DC000219

REGISTRADO

REGISTRADO
932488.06

910594.88

REGISTRADO

8.-La empresa desea regalar un articulo a todos los clientes que cumplan con
alguna de las siguientes condiciones:
a. Que el cliente haya comprado ms de 5 productos desde que se registro en
la base de datos.
b. Que el monto total de todos los productos que haya comprado supere a los
$3,000,000.
Generar la sentencia SQL empleando operadores del lgebra relacional.
Determine id, nombre, apellidos, numero de productos comprados y monto
total.

SELECT c.cliente_id, c.nombre, c.apellido_paterno, c.apellido_materno,


COUNT(*) AS cantidad, SUM(v.precio_venta) AS total FROM
cliente c JOIN subasta_venta v ON c.cliente_id=v.cliente_id
GROUP BY c.cliente_id, c.nombre, c.apellido_paterno, c.apellido_materno
HAVING COUNT(*)>5

UNION
SELECT c.cliente_id, c.nombre, c.apellido_paterno, c.apellido_materno,
COUNT(*) AS cantidad, SUM(v.precio_venta) AS total FROM
cliente c JOIN subasta_venta v ON c.cliente_id=v.cliente_id
GROUP BY c.cliente_id, c.nombre, c.apellido_paterno, c.apellido_materno
HAVING SUM(v.precio_venta)>3000000;

3 GALILEA GOMEZ

GONZALEZ 6 4487933.17

13 ALEJANDRO ALVAREZ GOMEZ


33 CLAUDIA LUNA
49 SONIA
56 ANE

OJEDA
RAMOS

4 3542077.21

HERNANDEZ 4 3034465.63
ZAVALA

5 3421015.72

BENITEZ 4 3083806.95

74 AZUCENA HERNANDEZ CONTRERAS 4 3859436.78


92 LUZ
95 PABLO

FRANCO
TOLEDO

NEZ

5 3116215.04

CABRERA 6 3481850.47

9.-SUBMEX ha decido incrementar en un 10% el precio inicial de todos aquellos


artculos arqueolgicos que tengan mas de 150 aos de antigedad y que aun
no se han incluido en un proceso de subasta, es decir, solo se han registrado
en la BD. Determine id, nombre, clave, status, ao de hallazgo, y antigedad
en aos de dichos artculos.

SELECT a.articulo_id, a.nombre, a.clave_articulo, s.clave, q.anio_hallazgo,


2015-q.anio_hallazgo AS antiguedad FROM
articulo a JOIN articulo_Arqueologico q ON a.articulo_id=q.articulo_id
JOIN status_articulo s ON a.status_articulo_id=s.status_articulo_id
WHERE anio_hallazgo<1865 AND s.clave='REGISTRADO';

Espejo de roble

A1948DC000008

Espejo dorado grande


176

REGISTRADO

A1835DC000009

1722 293

REGISTRADO

1839

30

Azafata metal plateado final s.XIX


1620 395

A1887DC000030

33

Centro mesa art Dec


284

34

Centro mesa metal final s.XIX


1521 494

51

Candelabros (2 piezas) bronze, mitad s.XIX A1949DC000051


REGISTRADO
1502 513

55

Cajita de caoba con marquetera, mitad s.XIX


REGISTRADO
1717 298

A1806DC000033

REGISTRADO

REGISTRADO

A1929DC000034

1731

REGISTRADO

A1850DC000055

10.-Suponga que un cliente decide realizar una consulta en el catlogo de


artculos, esta interesado por todos aquellos artculos cuyo nombre o
descripcin hagan referencia o hablen de la palabra Colonial que no han sido
an vendidos, y que el articulo este en proceso de ser subastado. Generar la
sentencia SQL que muestre el nombre y tipo de todos los artculos que
cumplan con los criterios de bsqueda.

SELECT a.nombre, a.tipo_articulo FROM


articulo a JOIN status_articulo s ON a.status_articulo_id=s.status_articulo_id
WHERE s.clave='EN SUBASTA' AND (a.descripcion LIKE '%Colonial%' OR
a.nombre LIKE '%Colonial%');

Motocicleta AJS Colonial 1000cc (cortesa motos-antiguas.com) D

11.-Se desea generar un reporte estadstico que contenga la cantidad de


artculos que hayan sido vendidos o entregados para cada uno de los tipos
existentes. Genere una sentencia SQL que genere el reporte solicitado
mostrando el nmero de artculos, la clave del status y el tipo de artculo.

SELECT s.clave, a.tipo_articulo, COUNT(*) FROM


articulo a JOIN status_articulo s ON a.status_articulo_id=s.status_articulo_id

WHERE s.clave='VENDIDO' OR s.clave='ENTREGADO'


GROUP BY s.clave, a.tipo_articulo;

VENDIDO D 14
VENDIDO P 53
VENDIDO A 12
ENTREGADO P 54
ENTREGADO D 13
ENTREGADO A 6

12.-Suponga que se desea generar un reporte anual que muestre los totales
recaudados en cada subasta realizada en el 2009, y por cada tipo de artculo.
Genere un reporte que muestre, el nombre de la subasta, la fecha de inicio, el
lugar en la que se realiz, el tipo de articulo y el monto total recaudado
ordenadas del mayor al menor monto obtenido Emplear notacin SQL estndar.

SELECT s.nombre, s.fecha_inicio, s.lugar, e.clave, SUM(v.precio_venta) AS total


FROM
articulo a JOIN status_articulo e ON a.status_articulo_id=e.status_articulo_id
JOIN subasta s ON a.subasta_id=s.subasta_id
JOIN subasta_venta v ON a.articulo_id=v.articulo_id
WHERE s.fecha_inicio>=TO_DATE('01/01/2009','DD/MM/YYYY') AND
s.fecha_fin<=TO_DATE('31/12/2009','DD/MM/YYYY')
GROUP BY s.nombre, s.fecha_inicio, s.lugar, e.clave
ORDER BY SUM(v.precio_venta) DESC;

PROMO-CUERNAVACA
2747867.99

2009-10-29 00:00:00

SALUD-ACAPULCO 2009-11-19 00:00:00


2274877.42
CARNAVAL-ACAPULCO
1553506.37

CUERNAVACA

ACAPULCO

2009-10-22 00:00:00

VENDIDO

ENTREGADO

ACAPULCO

ENTREGADO

PROMO-GUANAJUATO
2009-11-05 00:00:00
ENTREGADO 1374140.81
GALA-MAZATLAN 2009-12-03 00:00:00
1321370.01

GUANAJUATO

MAZATLAN VENDIDO

PROMO-GUANAJUATO
1256935.63

2009-11-05 00:00:00

GUANAJUATO

VENDIDO

SALUD-GUADALAJARA
1241966.67

2009-10-08 00:00:00

GUADALAJARA

VENDIDO

SALUD-PUERTO DE VERACRUZ 2009-10-15 00:00:00


VERACRUZ VENDIDO
1218270.45
PROMO-CUERNAVACA
2009-10-29 00:00:00
ENTREGADO 1160231.22
ALTRUISTA-PUERTO VALLARTA
VENDIDO
973836.36

CUERNAVACA

2009-11-12 00:00:00

SALUD-GUADALAJARA
2009-10-08 00:00:00
ENTREGADO 969294.23

PUERTO DE

PUERTO VALLARTA

GUADALAJARA

PROMO-MORELIA
922131.17

2009-12-17 00:00:00

MORELIA

GALA-MAZATLAN
849786.93

2009-12-03 00:00:00

MAZATLAN ENTREGADO

GALA-VILLA HERMOSA
710140.27

2009-11-26 00:00:00

GALA-CIUDAD DE MEXICO
VENDIDO
574950.25
PROMO-MORELIA
521923.36

VILLA HERMOSA

2009-12-24 00:00:00

2009-12-17 00:00:00

VENDIDO

MORELIA

VENDIDO

CIUDAD DE MEXICO
ENTREGADO

SALUD-SAN CRISTOBAL DE LAS CASAS


2009-12-10 00:00:00
CRISTOBAL DE LAS CASAS
ENTREGADO 239362.9

SAN

13.-Para cada una de las subastas que se realizaron durante los meses enero,
marzo y junio del 2010, mostrar id, nombre, fecha inicio de la subasta, as
como el nombre y clave del artculo ms caro (precio venta) que se haya
vendido o entregado.

SELECT s.subasta_id, s.nombre, s.fecha_inicio, a.nombre, a.clave_articulo FROM


subasta s JOIN articulo a ON s.subasta_id=a.subasta_id
JOIN subasta_venta v ON a.articulo_id=v.articulo_id
WHERE ((s.fecha_inicio>=TO_DATE('01/01/2010','DD/MM/YYYY') AND
s.fecha_fin<=TO_DATE('31/01/2010','DD/MM/YYYY'))
OR (s.fecha_inicio>=TO_DATE('01/03/2010','DD/MM/YYYY') AND
s.fecha_fin<=TO_DATE('31/03/2010','DD/MM/YYYY'))
OR (s.fecha_inicio>=TO_DATE('01/06/2010','DD/MM/YYYY') AND
s.fecha_fin<=TO_DATE('30/06/2010','DD/MM/YYYY')))
AND v.precio_venta=(SELECT MAX(ve.precio_venta) FROM subasta_venta ve
JOIN articulo ar ON ve.articulo_id=ar.articulo_id WHERE
ar.subasta_id=s.subasta_id);

15

EXPO-ACAPULCO
A1876DC000013

2010-01-14 00:00:00

Espejos

23

CARNAVAL-SAN MIGUEL DE ALLENDE 2010-03-11 00:00:00


amoladora manual P1825DC000070

38
EXPO-SAN MIGUEL DE ALLENDE 2010-06-24 00:00:00
fragua
P1837DC000077

fuelle para

37
CARNAVAL-PUERTO VALLARTA
granos
P1844DC000095

sembradora de

2010-06-17 00:00:00

16

GALA-MERIDA
P1937DC000101

2010-01-21 00:00:00

14

CARNAVAL-CUERNAVACA 2010-01-07 00:00:00


P1913DC000141

25

FESTIVAL-HEROICA PUEBLA DE ZARAGOZA 2010-03-25 00:00:00


llamador (altiquitaca.com)
P1812DC000167

24
PROMO-CIUDAD DE MEXICO
pelculas
P1834DC000189

tarro de aguatero
cubiertos

2010-03-18 00:00:00

35
SALUD-CUERNAVACA
2010-06-03 00:00:00
(altiquitaca.com) P1853DC000190

proyector de

proyector super 8 mm

22
GALA-OAXACA DE JUAREZ
2010-03-04 00:00:00
pantaln de ciclista
P1850DC000308

pinza sujeta

14.-Calcular el monto total de la ltima factura del cliente GALILEA GOMEZ


GONZALEZ.

SELECT SUM(precio_venta) AS precio FROM


subasta_venta v JOIN cliente c ON v.cliente_id=c.cliente_id
JOIN factura_cliente f ON v.factura_cliente_id=f.factura_cliente_id
WHERE c.nombre='GALILEA' AND c.apellido_paterno='GOMEZ' AND
c.apellido_materno='GONZALEZ'
AND f.fecha_factura=(SELECT MAX(fa.fecha_factura) FROM factura_cliente fa
JOIN subasta_venta su ON fa.factura_cliente_id=su.factura_cliente_id WHERE
su.cliente_id=c.cliente_id);

1765264.89

15.-Suponga que para el prximo ao, la empresa va a repetir la misma ronda


de subastas por el xito que tuvieron durante el 2010 a excepto de todas
aquellas que hayan vendido 3 o menos artculos. Determinar id de la subasta,
nombre, numero de artculos vendidos de las subastas que podrn ser
repetidas ordenadas por id.

SELECT s.subasta_id, s.nombre, COUNT(*) AS articulos FROM


subasta s JOIN articulo a ON s.subasta_id=a.subasta_id
JOIN subasta_venta v ON a.articulo_id=v.articulo_id
JOIN status_articulo e ON a.status_articulo_id=e.status_articulo_id
WHERE s.fecha_inicio>=TO_DATE('01/01/2010','DD/MM/YYYY') AND
s.fecha_fin<=TO_DATE('31/12/2010','DD/MM/YYYY') AND e.clave='VENDIDO'
GROUP BY s.subasta_id, s.nombre HAVING COUNT(*)>3
ORDER BY s.subasta_id ASC;

16

GALA-MERIDA

16.-En julio del 2010 la empresa lanz una promocin de venta de Motocicletas
en sus subastas. Se desea generar un reporte que muestre los siguientes
datos: Identificador de la subasta, fecha de inicio, identificador del artculo,
nombre del artculo, precio inicial del artculo de todas las motocicletas que se
vendieron o entregaron a un cliente en las subastas que iniciaron en el periodo
que dur la promocin.
Agregar una columna ms al reporte (columna de referencia), que indique el
promedio del precio inicial de todas las motocicletas considerando todo el ao
2010.

SELECT s.subasta_id, s.fecha_inicio, a.articulo_id, a.nombre, a.precio_inicial,


(SELECT AVG(ar.precio_inicial) FROM articulo ar JOIN subasta su ON
ar.subasta_id=su.subasta_id JOIN status_articulo es ON
ar.status_articulo_id=es.status_articulo_id WHERE
su.fecha_inicio>=TO_DATE('01/01/2010','DD/MM/YYYY') AND
su.fecha_fin<=TO_DATE('31/12/2010','DD/MM/YYYY') AND ar.nombre LIKE
'%_otocicleta%' AND (es.clave='VENDIDO' OR es.clave='ENTREGADO')) AS
promedio FROM
subasta s JOIN articulo a ON a.subasta_id=s.subasta_id
JOIN status_articulo e ON a.status_articulo_id=e.status_articulo_id
WHERE s.fecha_inicio>=TO_DATE('01/07/2010','DD/MM/YYYY') AND
s.fecha_fin<=TO_DATE('30/07/2010','DD/MM/YYYY') AND a.nombre LIKE
'%_otocicleta%' AND (e.clave='VENDIDO' OR e.clave='ENTREGADO');

40
2010-07-08 00:00:00
(cortesa retro-moto.com )

386 Motocicleta BMW R50 500cc con sidecar


732011.44 312198.29875

17.-La empresa decide reconocer a ciertos pases por su buena participacin:


Generar un reporte con los datos de los pases que han donado 3 o mas
artculos con un precio de venta inicial mayor a $300,000

SELECT p.pais_id, p.clave, p.descripcion FROM


articulo a JOIN articulo_donado d ON a.articulo_id=d.articulo_id
JOIN pais p ON d.pais_id=p.pais_id
WHERE a.precio_inicial>300000
GROUP BY p.pais_id, p.clave, p.descripcion HAVING COUNT(*)>=3;

15

DO

REP DOMINICANA

34

AT

AUSTRIA

18.-Generar una consulta que determine los datos de las subastas que durante
el ao 2010 hayan logrado obtener $3,000,000 o ms en ventas.

SELECT s.subasta_id, s.nombre, s.fecha_inicio, s.fecha_fin, s.lugar, s.cupo FROM


subasta s JOIN articulo a ON s.subasta_id=a.subasta_id
JOIN subasta_venta v ON a.articulo_id=v.articulo_id
WHERE s.fecha_inicio>=TO_DATE('01/01/2010','DD/MM/YYYY') AND
s.fecha_fin<=TO_DATE('31/12/2010','DD/MM/YYYY')
GROUP BY s.subasta_id, s.nombre, s.fecha_inicio, s.fecha_fin, s.lugar, s.cupo
HAVING SUM(precio_venta)>=3000000;

28
GALA-SANTIAGO DE QUERETARO
21 00:00:00 SANTIAGO DE QUERETARO

2010-04-15 00:00:00
278

2010-04-

52

GALA-MONTERREY 2010-09-30 00:00:00


MONTERREY 231

2010-10-06 00:00:00

14

CARNAVAL-CUERNAVACA 2010-01-07 00:00:00


CUERNAVACA
233

2010-01-13 00:00:00

19

GALA-CUERNAVACA
CUERNAVACA
89

2010-02-17 00:00:00

2010-02-11 00:00:00

38
EXPO-SAN MIGUEL DE ALLENDE 2010-06-24 00:00:00
00:00:00
SAN MIGUEL DE ALLENDE
235

2010-06-30

19.-Suponga que se desea generar un reporte a detalle de todos los artculos


que fueron comprados y pagados con la tarjeta de crdito 5681375824866375.
Los datos que el reporte debe mostrar son los siguientes:
a. Fecha de la factura
b. Numero de la tarjeta
c. Nombre y apellidos del cliente

d. Precio de venta de cada articulo


e. Precio de compra de cada articulo
f. Diferencia entre el precio de compra y el de venta
g. Nombre y clave del artculo
h. Tipo de artculo
i. Nombre completo del famoso al que perteneci el articulo (en caso de ser
articulo perteneciente a un famoso)
j. Ao de hallazgo, en caso de que el artculo sea arqueolgico.
k. Clave del pas, en caso de que el articulo haya sido donado por dicho pais.

SELECT f.fecha_factura, t.numero_tarjeta, c.nombre, c.apellido_paterno, c.


apellido_materno, v.precio_venta, a.precio_inicial, v.precio_ventaa.precio_inicial, a.nombre, a.clave_articulo, a.tipo_articulo, r.nombre_completo,
q.anio_hallazgo, p.clave FROM
tarjeta_cliente t JOIN factura_cliente f ON
t.tarjeta_cliente_id=f.tarjeta_cliente_id
JOIN subasta_venta v ON f.factura_cliente_id=v.factura_cliente_id
JOIN cliente c ON c.cliente_id=t.cliente_id
JOIN articulo a ON a.articulo_id=v.articulo_id
LEFT JOIN articulo_famoso r ON a.articulo_id=r.articulo_id
LEFT JOIN articulo_arqueologico q ON a.articulo_id=q.articulo_id
LEFT JOIN articulo_donado d ON a.articulo_id=d.articulo_id
LEFT JOIN pais p ON d.pais_id=p.pais_id
WHERE t.numero_tarjeta='5681375824866375'

2010-07-04 00:00:00
5681375824866375
ANE RAMOS
BENITEZ
646841.41 530197.88 116643.53 porta tinteros y lapicera de
escritorio
P1897DC000264 P
Anton van Leeuwenhoek
2010-07-04 00:00:00
5681375824866375
ANE RAMOS
BENITEZ
671884.57 564608.88 107275.69 porta sellos P1847DC000262 P
Buda
2010-07-04 00:00:00
5681375824866375
ANE RAMOS
BENITEZ
698840.13 478657.62 220182.51 Jardinera de estao mitad s.XIX
A1948DC000047 A
1746

2010-07-04 00:00:00
5681375824866375
ANE RAMOS
BENITEZ
1066240.84 720433
345807.84 Espejito original de sobremesa,
bronce, mitad s.XIX
A1827DC000020 A
1502

20.-Se ha detectado que en la base de datos existen compras realizadas por


algunos clientes sin factura con montos de mas de $1,000,000, ya que la
empresa tiene como poltica, que toda compra igual o superior a dicho monto,
debe generar factura. Determine una sentencia SQL que muestre nombre,
apellidos, y el total del monto a cubrir, con la finalidad de notificarle al cliente
la inexistencia de su factura.
SELECT c.nombre, c.apellido_paterno, c.apellido_materno, SUM(v.precio_venta)
FROM
cliente c JOIN subasta_venta v ON c.cliente_id=v.cliente_id
WHERE v.factura_cliente_id IS NULL
GROUP BY c.nombre, c.apellido_paterno, c.apellido_materno HAVING
SUM(v.precio_venta)>=1000000;

LUZ

FRANCO

NEZ

3116215.04

DAVID VELAZQUEZ RIOS 1692811.13


FRANCISCO MARTIN

GUTIERREZ 2056490.64

PABLO

CABRERA

TOLEDO

JORGEBRAVO
MIRIAM

3481850.47

LUNA 1678653.35

OLIVERA

CASTRO

2555199.34

Concluciones:
La prctica nos hace reforzar todo lo visto relacionado con la instruccin
SELECT, estuvo ms sencilla de lo que cre, solo que algunos ejercicios eran
largos.
Me gustara el ejercicio 20 fuera ms complicado y se usar un poco ms el
NATURAL JOIN ya que ah tuve problemas al hacer referencia a los campos.

Bibliografa:
No se consult ningun libro adicional para realizar esta prctica.

Das könnte Ihnen auch gefallen