FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Consulta con dos tablas y varios COUNT
Hola compañeros del foro tengo este problema, he tratado de hacer una consulta con dos tablas y varios count, me explico, en la tabla tengo los siguientes campos:
TABLA REGISTRO REGNO (Integer) EMPID (Integer) EMPLEADO (varchar) FECHA (Date) ENTRADA (Time) SALIDA (Time) TARDANZA (Varchar) PERMISO (Varchar) LICENCIA (Varchar) EXCUSA (Varchar) ENFERMEDAD (Varchar) VACACIONES (Varchar) TABLA EMPLEADOS ID (Integer) NOMBRE (Varchar) TANDA (Integer) Estaba haciendo esta consulta:
Hasta ahí la consulta va bien pero a medias y yo quiero un reporte que me cuente las tardanzas, permisos, licencias, enfermedades, excusas y vacaciones de cada empleado. +----------------------+-------+-------+-------+ | EMPLEADO | DIAS | TARD | PER | +----------------------+-------+-------+-------+ | FERNANDO L. | 28 | 6 | 2 | | JUAN PEREZ | 26 | 8 | 4 | | ROSA SUAREZ | 30 | 1 | 0 | +----------------------+-------+-------+-------+ Ese es un ejemplo de cómo debería ser el reporte, estoy trabajando con Firebird 2.0 y Delphi 7. Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#2
|
|||
|
|||
Ahi te va...
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
#3
|
||||
|
||||
Amigo PCicom, perdón por la tardanza, estaba ocupado en otro proyecto, vale, acabo de probar la sentencia, pues mira que me ha funcionado bien, pues me intrigaba si tomaría los valores nulos o no.
Fíjate, tengo otro caso con la misma sentencia, el campo EXCUSA se rellena con dos datos: [S] y [N], ¿como podría hacer el conteo por separado?, ¿con un subquery en el select?. Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#4
|
||||
|
||||
Saludos.
Para validar los valores nulos puedes utilizar COALESCE(COUNT(CAMPO),0). Para lo del campo Excusa utiliza la sentencia CASE .... WHEN con esto solucionas tu problema. Hasta luego.
__________________
Gracias, Rolphy Reyes |
#5
|
||||
|
||||
Gracias Rolphy, haciendo uso del CASE...WHEN en cierto sentido me funciona, aqui dejo la sentencia:
Pero me esta sucediendo un problema, y es que me duplica los empleados en base a los datos del CASE...WHEN por separado, aqui dejo un ejemplo de como me está quedando. reporte.zip lo que busco es todos los datos esten en una misma fila en un solo empleado. Bueno espero que con el ejemplo sea mas entendible, porque hoy estoy espeso para escribir. Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#6
|
||||
|
||||
Bueno, lo último que he hecho es lo siguiente:
Pero me cuenta todos: Cita:
Saludos. PD. No sé por qué el cuadro no me sale en orden.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#7
|
|||
|
|||
Asi o mas Simple....
Uff esto de pensar me esta cansando.... quemando neuronas.... free
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
#8
|
||||
|
||||
Gracias amigo PCicom, haciendole algunas modificaciones porque me daba errores de sintaxis, quedó así:
Pero aún así sigue el mismo problema, ya estoy casi cambiando la estructura de la tabla, deberé separar los datos en campos diferentes . Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#9
|
||||
|
||||
Saludos.
Porque utilizas el campo Excusa en el Group By? Intenta a sacar el campo y luego avisas como vas.
__________________
Gracias, Rolphy Reyes |
#10
|
||||
|
||||
Gracias amigo Rolphy, pues no me había fijado, ahora no me repite y caen en una sola fila, pero el conteo no es el correcto me da la misma cantidad que la columna Dias del Reporte.
Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#11
|
||||
|
||||
Saludos.
Enecumene trata con la siguiente sentencia:
Sustituye por SUM los COUNT y utilizas CASE para preguntar por el valor y cuéntanos luego. Suerte!!!
__________________
Gracias, Rolphy Reyes |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
select count con varios campos | aanil | SQL | 4 | 17-05-2008 02:37:18 |
Consulta SQL - Sum - Count - Otros | BlueSteel | SQL | 5 | 10-10-2007 18:23:13 |
Consulta errada con COUNT | Jose Roman | SQL | 1 | 21-07-2007 17:51:55 |
Consulta en relación a count y group by en dos tablas | Albano | MySQL | 3 | 11-05-2007 00:04:34 |
varios count | pepe2000 | SQL | 7 | 16-02-2005 18:16:51 |
|