logo

WikiJuanan: ConsultasCursoSQL ...

Inicio | Indice De Paginas | Ultimas Modificaciones | Ultimos Commentarios | Usuarios | Registrarse | Conectar:  Contraseña:  
Esto es una version antigua de ConsultasCursoSQL de 2005-03-09 19:00:33..

Actividades Formativas? | Curso SQL?


Update con funciones de tratamiento de cadenas

Cambiamos el formato y el orden de una cadena
SELECT CONCAT(substring(fechapedido,7,2),'/',substring(fechapedido,5,2),'/',left(fechapedido,4)) FROM `pedido`


UPDATE pedido SET fechapedido=concat(substring(fechapedido,7,2),'/',substring(fechapedido,5,2),'/',left(fechapedido,4))


UPDATE pedido
SET fechaentrega2 = CONCAT(LEFT(fechaentrega,4),'-',
SUBSTRING(fechaentrega,5,2),'-',SUBSTRING(fechaentrega,7,2))
WHERE LENGTH(fechapedido) > 8

Consultas de unión internas

Clientes con pedidos con importe superior a 500 euros
SELECT nombrecompañía,cargo FROM cliente INNER JOIN pedido ON cliente.idcliente=pedido.idcliente
WHERE cargo > 500 ORDER BY cargo DESC


Los empleados con sus jefes
SELECT concat(empleado.nombre,' ',empleado.apellidos) as 'nombre empleado',
concat(jefe.nombre,' ',jefe.apellidos) as 'nombre jefe'
FROM `empleado` left join empleado as jefe
on empleado.jefe=jefe.idempleado
order by 'nombre jefe'

Resolución de problemas

Nombre de la compañía que ha hecho el cargo más grande
Esta consulta no funciona porque “MAX” es una función agrupada y «nombrecompañía” no está agrupada:
SELECT nombrecompañía, MAX(cargo) FROM cliente,pedido
WHERE cliente.idcliente = pedido.idcliente


Esta sin funciona:
select nombrecompañía,cargo from pedido,cliente
where cliente.idcliente=pedido.idcliente
and cargo in (select max(cargo) from pedido)


Compañías que no han hecho compras en la primera mitad del año 98
SELECT nombrecompañía FROM cliente WHERE idcliente
NOT IN (SELECT idcliente FROM pedido
WHERE fechaentrega2
BETWEEN '1998–01–01' AND '1998–06–31')

No hay archivos en esta página. [Enseñar archivos/formulario]
No hay comentarios en esta pagina. [Enseñar comentarios/formulario]