jueves, 17 de marzo de 2011

Soluciones T03

T03.001- Código y nombre de los articulos con un precio entre 400 y 500 euros.
select cod,nombre from articulo where pvp between 400 and 500;
Solución alternativa: 
select cod,nombre from articulo where pvp >= 400 and pvp <= 500;

T03.002- Código y nombre de los articulos con precio 415, 129, 1259 o 3995.
select cod,nombre from articulo
where pvp in (415, 129, 1259, 3995);
Solución alternativa: 
select cod,nombre from articulo
where pvp = 415 or pvp = 129 or pvp = 1259 or pvp = 3995;

T03.003- Código y nombre de las provincias que no son Huelva, Sevilla, Asturias ni Barcelona.
select codp,nombre from provincia
where nombre not in ('huelva', 'sevilla', 'asturias', 'barcelona');
Solución alternativa: 
select codp,nombre from provincia
where nombre != 'huelva' and nombre != 'sevilla' and nombre != 'asturias'and nombre != 'barcelona';

T03.004- Código de la provincia Alicante.
select codp from provincia
where nombre like 'Alicante%';

T03.005- Obtener el código, nombre y pvp de los articulos cuya marca comience por S.
select cod, nombre, pvp from articulo where marca like 'S%'

T03.006- Información sobre los usuarios cuyo email es de la eps.
select * from usuario where email like '%@eps.%'

T03.007- Código, nombre y resolución de los televisores cuya pantalla no esté entre 22 y 42.
select a.cod, nombre, resolucion
from articulo a, tv
where a.cod=tv.cod and pantalla not between 22 and 42;

T03.008- Código y nombre de los televisores cuyo panel sea tipo LED y su precio no supere los 1000 euros.
select t.cod, nombre from tv t, articulo a where t.cod=a.cod and panel like '%LED%' and pvp<=1000;

T03.009- Email de los usuarios cuyo código postal no sea 02012, 02018 o 02032.
select email from usuario
where codpos not in ('02012','02018','02032');

T03.010- Código y nombre de los packs de los que se conoce de que articulos se componen.
select distinct cod, nombre
from  articulo, ptienea
where pack=cod;

T03.011- ¿Hay algún artículo en cesta que esté descatalogado?
select c.articulo
from cesta c, stock s
where c.articulo=s.articulo
and entrega='Descatalogado'

T03.012- Código, nombre y pvp de las cámaras de tipo compacta.
select c.cod, nombre, pvp
from camara c, articulo a
where c.cod = a.cod 
and tipo like '%compacta%';

T03.013- Código, nombre y diferencia entre pvp y precio de los articulos que hayan sido solicitados en algún pedido a un precio distinto de su precio de venta.
select cod, nombre, pvp-precio
from articulo, linped
where cod=articulo and pvp<>precio;

T03.014- Número de pedido,fecha y nombre y apellidos del usuario que solicita el pedido, para aquellos pedidos solicitados por algún usuario de apellido MARTINEZ.
select numpedido, fecha, nombre, apellidos
from pedido p, usuario u
where p.usuario = u.email
and apellidos like '%MARTINEZ%';

T03.015- Código, nombre y marca del artículo más caro.
select cod, nombre, marca, pvp
from articulo
where pvp >= all (select pvp from articulo);
Solución alternativa: 
select cod, nombre, marca, pvp
from articulo
where pvp = (select max(pvp) from articulo);

T03.016- Nombre, marca y resolucion de las cámaras que nunca se han solicitado.
select nombre, marca, resolucion
from articulo a, camara c
where a.cod=c.cod and c.cod not in (select articulo from linped);

T03.017- Código, nombre, tipo y marca de las cámaras de marca Nikon, LG o Sigma.
select c.cod, nombre, tipo, marca
from camara c, articulo a
where c.cod = a.cod and marca in ('Nikon', 'LG', 'Sigma');

T03.018- Código, nombre y pvp de la cámara más cara de entre las de tipo réflex.
select c.cod, nombre, pvp
from camara c, articulo a
where c.cod = a.cod
and tipo like '%réflex%' and pvp>= all (select pvp
from camara c, articulo a
where c.cod = a.cod and tipo like '%réflex%');

T03.019- Marcas de las que no tenemos ningún televisor.
select distinct marca 
from articulo
where cod not in (select cod from tv) and marca is not null;

T03.020- Código, nombre y disponibilidad de los artículos con menor disponibilidad de entre los que pueden estar disponibles en 24 horas.
select cod, nombre, disponible
from stock s, articulo a
where s.articulo = a.cod and entrega='24 horas' and disponible <= all (select disponible
from stock 
where entrega='24 horas');

T03.021- Nombre de los artículos cuyo nombre contenga la palabra EOS.
select nombre from articulo where nombre like '%EOS%';

T03.022- Tipo y focal de los objetivos que se monten en una cámara Canon sea cual sea el modelo.
select tipo, focaL from objetivo where montura like 'Canon%';

T03.023- Nombre de los artículos cuyo precio sea mayor de 100 pero menor o igual que 200.
select nombre from articulo where pvp>100 and pvp<=200;

T03.024- Nombre de los artículos cuyo precio sea mayor o igual que 100 pero menor o igual que 300.
select nombre from articulo where pvp between 100 and 300;

T03.025- Nombre de las cámaras cuya marca no comience por la letra S.
select nombre from articulo a, camara c where a.cod=c.cod and marca not like 'S%';;

T03.026- Dirección de correo de los usuarios cuyo dni termine en B, L o P.
select email from usuario
where dni like '%B'  or dni like '%L'  or dni like '%P';


T03.027- Código de los televisores que tengan un panel LCD o LED.
select cod from tv where panel like '%LCD%' or panel like '%LED%';

T03.028- Número de pedido y artículo con la línea de pedido de menor precio.
select numpedido, articulo
from linped
where precio = (select min(precio) from linped);

T03.029- Nombre de los televisores que tengan una pantalla mayor que el televisor de código A0686.
select nombre
from tv, articulo a
where tv.cod = a.cod and pantalla>(select pantalla
from tv
where cod='A0686');

T03.030- Líneas de pedido y número de pedido al que correspondan dichas líneas, y que incluyan más cantidad de artículos que las demás.
select linea, numpedido
from linped
where cantidad >= all (select cantidad
from linped);

T03.031- Líneas de pedido y nombre de los artículos que aparecen en esas líneas, si el precio de esas líneas no es el menor de todas las líneas conocidas.
select distinct linea, nombre
from linped l, articulo a
where l.articulo = a.cod and precio !=
(select min(precio)
from linped);

T03.032- Nombre, precio y marca de los artículos con mayor disponibilidad de stock.
select nombre, pvp, marca
from articulo a, stock s
where s.articulo = a.cod and disponible >= all (select disponible
from stock);


T03.033- Nombre, precio y marca de los artículos que no tengan la mayor disponibilidad de stock.
select nombre, pvp, marca
from articulo a, stock s
where s.articulo = a.cod and disponible !=
(select max(disponible)
from stock);


T03.034- Provincias en las que viven usuarios que hayan realizado algún pedido.
select distinct p.nombre
from provincia p, pedido, usuario u
where usuario = email and u.provincia = codp;

T03.035- Nombre de los artículos que hayan sido seleccionados en alguna cesta con fecha entre 01.11.2010 y 31.12.2010
select distinct nombre
from articulo a, cesta c
where a.cod=c.articulo
and c.fecha between '2010-11-01' and '2010-12-31';

T03.036- Nombre de los artículos que hayan sido seleccionados en alguna cesta por usuarios de las provincias de Valencia o Alicante.

select distinct a.nombre
from provincia p, usuario u, cesta c, articulo a
where usuario = email and u.provincia = codp and c.articulo = a.cod and p.nombre in ('Valencia/València', 'Alicante/Alacant');

T03.037- Número de los pedidos en los que se han incluido artículos a un precio menor que su pvp.

select distinct numPedido
from linped l, articulo a
where l.articulo = a.cod and pvp>precio;

No hay comentarios:

Publicar un comentario