Visual Basic - consulta sql

Life is soft - evento anual de software empresarial
   
Vista:

consulta sql

Publicado por JOSE (3 intervenciones) el 07/09/2007 22:43:32
Buenas tardes. estoy desarrollando un software para mi colegio q marque la hora de entrada y la salida y hago una consulta a tres tablas con este codigo

Set rs.DataSource = cn.Execute("Select usuarios.cod_barras AS Codigo," & _
" usuarios.nombre + ' ' + usuarios.apellido as Usuario," & _
" entrada.h_entrada as [Hora Entrada]," & _
" salida.h_salida as [Hora Salida], entrada.fecha as Fecha" & _
" from entrada, salida, usuarios" & _
" where entrada.fecha = salida.fecha" & _
" and entrada.codigo = usuarios.cod_barras" & _
" and salida.codigo = usuarios.cod_barras" & _
" and usuarios.departamento = '" & Combo1.Text & "'" & _
" and entrada.fecha = '" & DTPicker1.Value & "'")
If rs.EOF Then
MsgBox "NO HAY DATOS ", vbCritical
Else: Set DataGrid1.DataSource = rs
End If

funciona perfecto, el problema esta en q si la tabla entrada o la tabla salida no tienen dato para la misma fecha del mismo usuario va directo a la parte de no hay datos.

como puedo filtrar la consulta para que si una de las tablas esta vacia igual me coloque los datos que consiga.

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta sql

Publicado por Victor Sanchez (16 intervenciones) el 17/09/2007 04:20:15
puedes hacer sub querys en lugar de relacionarlo en el where.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta sql

Publicado por Leo (1 intervención) el 21/09/2007 16:56:13
Para solucionar el problema debes utilizar left join o right join para hacer la relacion entre las tablas. left join te devuelve todos los datos de la tabla que colocaste a la izquierda del mismo y right join los de la tabla de la derecha.

Sería algo así:

SELECT *
FROM (usuario LEFT JOIN salida
ON usuario.cod_barra=salida.codigo) INNER JOIN entrada
ON entrada.codigo=usuario.cod_barra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta sql

Publicado por Isrrael (1 intervención) el 26/09/2007 05:20:00
Una consulta yo estoy desarrollando un sistema muy similar, es de control de tiempos (asistencia de personal). ¿Podrías decirme como puedo imprimir un reporte de una fecha especificada por el usuario? O sea si el usuario quiere imprimir por ejemplo la asistencia del 01/01/2007, como debo de hacerlo. Yo grabo los datos de hora de entrada y salida en una sola tabla.

Gracias anticipadas por tu apoyo

Saludos

Isrrael
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar