Soluciones

English version (when available)

T03.001- Código de los artículos que pertenecen a algún pack.

select articulo
from ptienea;


T03.002- Número de pack, nombre y precio del mismo.

select p.cod,nombre,pvp 
from articulo a, pack p
where a.cod = p.cod


T03.003- Código, nombre y marca de los artículos que pertenecen a algún pack.

select articulo,nombre,marca
from articulo, ptienea
where cod = articulo


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 qué articulos los componen, eliminando duplicados.

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,c.usuario,c.fecha,s.articulo stock,s.disponible,s.entrega 
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 a.cod, nombre, pvp
from articulo a, camara c
where a.cod=c.cod and tipo like'%compacta%';


T03.013- Código, nombre y diferencia entre pvp e importe de los articulos que hayan sido solicitados en algún pedido a un importe distinto de su precio de venta al público.

select cod, nombre, pvp-importe
from articulo, linped
where cod=articulo and pvp<>importe;


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, usuario 
where usuario=email and apellidos like'%MARTINEZ%'


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 a.cod, nombre, tipo, marca 
from articulo a, camara c
where a.cod=c.cod and marca in ('NIKON','LG','SIGMA');


T03.019- Marcas de las que no existe ningún televisor en nuestra base de datos.

select marca from marca 
where marca not in (select marca
                    from articulo a, tv t
                    where a.cod=t.cod);
Solución alternativa:
SELECT marca 
FROM marca m 
WHERE NOT EXISTS 
  (SELECT 1 FROM articulo a, tv t 
   where a.cod=t.cod and a.marca=m.marca);


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.029- Nombre de los televisores que tengan una pantalla mayor que el televisor de código A0686.

select nombre 
from articulo a, tv t 
where a.cod=t.cod 
  and pantalla > (select pantalla from tv where cod ='A0686');


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 articulo a, cesta c, usuario u 
where a.cod=c.articulo 
  and c.usuario=u.email 
  and u.provincia in 
     (select codp 
      from provincia 
      where nombre like 'Alicante%' or nombre like 'Valencia%');


T03.037- Número identificador de los pedidos en los que se han incluido artículos a un importe menor que su pvp, eliminando duplicados.

select distinct numpedido 
from linped l, articulo a 
where l.articulo=a.cod and l.importe < a.pvp;


T03.038- Número de pack, nombre y precio del mismo, y código, nombre y marca de los artículos que pertenezcan a ellos.

select a1.cod, a1.nombre, a1.pvp, a2.cod art2, a2.nombre nombre2, a2.marca 
from articulo a1, ptienea pp, articulo a2
where pp.pack = a1.cod
and pp.articulo = a2.cod