Ayuda para programar una consulta.

Discute sobre las herramientas de la base de datos
Responder
Power
Mensajes: 6
Registrado: Vie Feb 23, 2018 10:24 pm

Ayuda para programar una consulta.

Mensaje por Power »

Hola buenas,

Necesito un poco de ayuda para programar esta consulta.

Estoy intentado hacer una consulta que me presente todos los empleados que han trabajado en el mismo día pero alternado el orden de registro en los campos Empleado1 o Empleado2.

En el ejemplo me tendria que listar unicamente los que indico "<- Aquí"
En el mismo día están emparejados registrados en los campos Empleado1 y Empleado2 y viceversa.

Tabla Diario
==========
Fecha Date
Empleado1 Integer
Empleado2 Integer

01/01/18 1 2 <- Aqui
01/01/18 1
01/01/18 2
01/01/18 2 1 <- Aquí
01/01/18 1

02/01/18 2
02/01/18 2 1 <- Aquí
02/01/18 1
02/01/18 1 2 <- Aquí
02/01/18 1

Gracias, saludos.
LibreOffice 6.0.1.1 (x64) en Windows 7
Longi
Mensajes: 804
Registrado: Dom Ene 20, 2013 9:05 pm
Ubicación: Ourense, Galicia, España

Re: Ayuda para programar una consulta.

Mensaje por Longi »

Buenas!
Con los ejemplos puestos así no me termino de hacer una idea, y quizá te ponga una burrada, pero yo lo que haría sería una consulta con todos los campos, y luego añadiría una cláusula CASEWHEN para el empleado1 y otra para el 2 (CASEWHEN(empleado1<>'',1,0) y CASEWHEN(empleado1<>'',1,0)). En estas columnas pones como criterio el 1, y entonces te selecciona los que tienen actuación del empleado en cuestión, y como lo hiciste con todos los campos, tienes los datos que necesitas.

No sé si te he aclarado algo o te lo he puesto peor, pero así, describir a pelo es un tanto complicado.....

A ver si hemos acertado!

Un saludo! ;)
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Avatar de Usuario
JoseJuan
Mensajes: 34
Registrado: Mié Abr 04, 2018 10:41 pm
Ubicación: Valencia (España)

Re: Ayuda para programar una consulta.

Mensaje por JoseJuan »

Si lo que quieres es que se muestren los registros que tengan los dos campos 'Empleados' completados, solo hay que preguntar que no sean nulos en la misma línea 'O' de la consulta.
La consulta convertida en SQL quedaria algo así:
SELECT `Fecha`, `Empleado1`, `Empleado2` FROM `Diario` WHERE `Empleado1` <> NULL AND `Empleado2` <> NULL ORDER BY `Fecha` ASC, `Empleado1` ASC, `Empleado2` ASC

Saludos.
libreoffice 5.3.7.2 (x64) en Windows 7 / Libreoffice 6.4.2.2 en Windows 10
Responder