Soluciones

English version (when available)

T02B.001- Código, nombre y pvp de los artículos de menos de 100€; la salida ha de ser código, nombre, "tiene el precio de", pvp.

select cod,nombre,'tiene el precio de',pvp from articulo where pvp < 100


T02B.002- DNI,email,nombre y apellidos de los usuarios de la provincia de Asturias (código 33).

select dni,email,nombre,apellidos 
from usuario
where provincia='33';
El código de las localidades y de las provincias es texto, no número.

T02B.003- Toda la información (código y nombre) de las provincias de las que se tienen usuarios

select pv.* 
from usuario u, provincia pv
where u.provincia=codp;


T02B.004- Toda la información (código y nombre) de las provincias de las que se tienen usuarios, eliminando duplicados y ordenando por nombre

select distinct pv.* 
from usuario u, provincia pv
where u.provincia=codp
order by pv.nombre;
Solución alternativa:
select distinct pv.* 
from usuario u, provincia pv
where u.provincia=codp
order by 2;


T02B.005- Email de los usuarios de la provincia de Murcia que no tienen teléfono, acompañado en la salida por un mensaje que diga "No tiene teléfono"

select email,'No tiene teléfono' 
from usuario u, provincia pv
where u.provincia=codp and pv.nombre = 'Murcia'
and telefono is null;


T02B.006- Artículos que no tienen marca

select * from articulo where marca is null


T02B.007- 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;


T02B.008- 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;


T02B.009- Código, nombre, marca, pvp e importe de los artículos solicitados en el pedido número 1.

select articulo,nombre,marca,pvp,importe
from linped l, articulo a
where numpedido=1
and a.cod=l.articulo


T02B.010- Código, nombre, marca, pvp e importe de los artículos solicitados en el pedido número 1 que sean televisores.

select articulo,nombre,marca,pvp,importe
from linped l, articulo a, tv t
where numpedido=1
and a.cod=l.articulo
and a.cod=t.cod


T02B.011- Fecha y usuario del pedido, código, nombre, marca, pvp e importe de los artículos solicitados en el pedido número 1 que sean televisores.

select fecha,usuario,articulo,nombre,marca,pvp,importe
from linped l, articulo a, tv t, pedido p
where l.numpedido=1 and l.numpedido = p.numpedido
and a.cod=l.articulo
and a.cod=t.cod


T02B.012- Código, sensor y pantalla de las cámaras, si es que "pantalla" tiene valor, ordenado por código descendentemente;

select cod,sensor,pantalla 
from camara 
where pantalla is not null order by cod desc;


T02B.014- Nombre de las provincias en las que viven usuarios que hayan realizado algún pedido, eliminando duplicados.

select distinct p.nombre 
from usuario u, provincia p, pedido pe 
where u.provincia=p.codp and u.email=pe.usuario;


T02B.020- 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';