SQL - Funciones
Enviado por John0099 • 29 de Agosto de 2018 • 999 Palabras (4 Páginas) • 356 Visitas
...
14. Obtén el apellido de los clientes que empiecen por A y hayan hecho algún movimiento.
SELECT apellidos FROM cliente, cuenta, movimiento WHERE cliente.cod_cliente = cuenta.cod_cliente AND cuenta.cod_cuenta = movimiento.cod_cuenta AND apellidos LIKE 'A%' AND cod_tipo_movimiento = ANY (SELECT cod_tipo_movimiento FROM movimiento) GROUP BY apellidos;
SELECT DISTINCT(apellidos) FROM cliente, cuenta, movimiento WHERE cliente.cod_cliente = cuenta.cod_cliente AND cuenta.cod_cuenta = movimiento.cod_cuenta AND apellidos LIKE 'A%' AND cod_tipo_movimiento = ANY (SELECT cod_tipo_movimiento FROM movimiento);
SELECT DISTINCT(apellidos) FROM cliente, cuenta, movimiento WHERE cliente.cod_cliente = cuenta.cod_cliente AND cuenta.cod_cuenta = movimiento.cod_cuenta AND apellidos LIKE 'A%' AND EXISTS (SELECT cod_tipo_movimiento FROM movimiento);
15. Mostrar por pantalla el número de cuenta y una cadena denominada APELLNOM donde escriba las 5 primeras letras del apellido y las 3 primeras del nombre. Si el apellido es inferior a 5 letras, pues el número de letras que tenga más las 3 primeras del nombre.
SELECT CONCAT('APELLNOM: ', SUBSTR(apellidos,0,5) || SUBSTR(nombre,0,3)), cod_cuenta FROM cliente, cuenta WHERE cliente.cod_cliente = cuenta.cod_cliente;
SELECT CONCAT(SUBSTR(apellidos,0,5), SUBSTR(nombre,0,3)) AS APELLNOM, cod_cuenta FROM cliente, cuenta WHERE cliente.cod_cliente = cuenta.cod_cliente;
16. Muestre por pantalla el número de cuenta y el apellido de los clientes al que se le concatene por la izquierda las 3 primeras letras del nombre.
SELECT apellidos, SUBSTR(nombre,0,3), cod_cuenta FROM cliente, cuenta WHERE cliente.cod_cliente = cuenta.cod_cliente;
17. Muestre por pantalla el número de cuenta y el apellido de los clientes al que se le supriman las 3 últimas letras.
SELECT RTRIM(apellidos, SUBSTR(apellidos, -3, LENGTH(apellidos))), cod_cuenta FROM cliente, cuenta WHERE cliente.cod_cliente = cuenta.cod_cliente;
SELECT SUBSTR(apellidos, 0, LENGTH(apellidos)-3), cod_cuenta FROM cliente, cuenta WHERE cliente.cod_cliente = cuenta.cod_cliente;
18. Muestre por pantalla el número de cuenta, el nombre y el apellido de aquellos clientes que contengan en su apellido la subcadena 'AN'. Muestre también la subcadena con los 3 símbolos centrales de su código de cuenta.
SELECT cod_cuenta, SUBSTR(cod_cuenta, (LENGTH(cod_cuenta)/2)-1, (LENGTH(cod_cuenta)/2)), nombre, apellidos FROM cliente, cuenta WHERE cliente.cod_cliente = cuenta.cod_cliente AND (apellidos LIKE '%An%' OR apellidos LIKE '%an%' OR apellidos LIKE '%aN%' OR apellidos LIKE '%AN%');
19. Devuelve el código y nombre completo del cliente que tenga el apellido más largo.
SELECT cod_cliente, CONCAT(CONCAT(nombre, ' '), apellidos) AS nombre_completo FROM cliente WHERE LENGTH(apellidos) = (SELECT MAX(LENGTH(apellidos)) FROM cliente);
20. Localiza el cliente con apellido 'Cardo Merita' y muestrálo como 'Cardo Merino' junto al resto de datos del cliente.
SELECT cod_cliente, nombre, REPLACE('Cardo Merita', 'ta', 'no') FROM cliente WHERE apellidos = 'Cardo Merita';
21. Mostrar los datos de las operaciones de retirada de cajero junto con el siguiente día lunes a la fecha de realización de la operación.
SELECT mes, num_mov_mes, importe, NEXT_DAY(fecha_hora, 'MONDAY') FROM movimiento WHERE cod_tipo_movimiento = 'RC';
22. Calcule la diferencia en días entre las operaciones de transferencia de salida de la cuenta 121221 con respecto al 01/01/2007.
SELECT cod_cuenta, movimiento.cod_tipo_movimiento, TRUNC(fecha_hora) - TO_DATE('01-01-2007', 'DD-MM-YY') AS dias_transcurrido FROM movimiento, tipo_movimiento WHERE movimiento.cod_tipo_movimiento = tipo_movimiento.cod_tipo_movimiento AND cod_cuenta = '121221' AND salida LIKE 'Si';
23. Extraiga para la cuenta 121236 todas las operaciones de salida. Muestre la fecha con el formato dia-tres iniciales del mes-año completo.
SELECT cod_cuenta, movimiento.cod_tipo_movimiento, TO_CHAR(fecha_hora, 'DD-month-YYYY') FROM movimiento, tipo_movimiento WHERE movimiento.cod_tipo_movimiento = tipo_movimiento.cod_tipo_movimiento AND cod_cuenta = '121236' AND salida LIKE 'Si';
...