Consulta desde VS 2014 para Contar los registros más frecuentes de 2 tablas SQL.

En 2 tablas (A, B) de la tabla A debo consultar los 5 empleados más frecuentes, de la tabla B debo tomar los datos personales inclutyendo su foto de los 5 empleados encontrados en tabla A, la consulta la debo mostrar en una datagrisview a través de una datatable. Les muestro como estoy haciendo la consulta pero no me mustra los datos como yo los decesito: strSQL = "SELECT TOP 4  A.No_Empleado,A.Nombre,A.Fecha,B.Foto FROM Tabla A,Tabla B  WHERE A.No_Empleado= B.ID_Num"

2 respuestas

Respuesta
1

: strSQL = "SELECT TOP 4  A.No_Empleado,A.Nombre,A.Fecha,B.Foto FROM Tabla A,Tabla B
 WHERE A.No_Empleado= B.ID_Num"
¿El top 4 <-para que lo usas si solo quieras 4 registros esta bien pero si no?, a simple vista esta bien la consulta,
pero como yo se "registros más frecuentes".
Son lo determinas por el numero de veces que se encuentra el registro, ¿manejas un contador de frecuencia?

Respuesta
1

Primero que todo, si la razón de la Consulta es buscar los 5 empleados que más se repiten necesitas un filtro que te permita conocer esta realidad, es decir, si esta Tabla se repiten N cantidad de veces los empleados debe haber un campo que los relacione. Por otra parte deberías hacer un group by para agruparlos y hacer el top 5.

Por ultimo, las 2 tablas deberías relacionarla entre ellas con Inner Join ejemplo

...A.No_Empleado,A.Nombre,A.Fecha,B.Foto FROM Tabla A Inner Join Tabla B On A.No_Empleado= B.ID_Num

¡Gracias! Por su ayuda, cuando se trabaja con tiempo limitado y bajo presión, uno debe ingeniárselas para resolver los problemas, no importa como, pero que cumpla su comentido y funcione, les dejo el Query de mi consulta, tal vez no sea las más ortodoxa pero me funciono:

strSQL = "SELECT TOP 4 No_Empleado as NO,NOMBRE,COUNT(*) AS NO_CHECADAS,(SELECT FOTO FROM TBL1_Employs WHERE ID_NUM = No_Empleado) FROM TBL_Empleados WHERE FECHA BETWEEN " & "'" & FechaDiff & "'" & " AND " & "'" & fecha & "'" & "GROUP BY No_Empleado,Nombre ORDER BY NO_CHECADAS DESC"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas