SQL - Error en Consulta a una tabla

   
Vista:

Error en Consulta a una tabla

Publicado por Iraitz iraitz.puente@gmail.com (3 intervenciones) el 24/07/2015 11:55:07
Hola gente!

Veamos, estoy haciendo una aplicación de escritorio en VS.NET y SQL Server 2005 y tengo un problema al cargar una consulta en un DataGridView.

La cosa es que no falla la consulta entera, solo partes xD.

Les dejo la consulta:

1
sql = "SELECT FechaRecepcion,ProductoCodigo, Cantidad, NSerie, CASE WHEN SAT = 1 THEN 'Si' ELSE 'No' END AS SAT, FechaReparacion, Posicion, FalloCodigo, FalloFuncional, DescripcionLR, EmpleadoCodigo, Observaciones FROM ((((LineasReparacion INNER JOIN Clientes ON LineasReparacion.ClienteIdLR = Clientes.ClienteId) INNER JOIN Productos ON LineasReparacion.ProductoId = Productos.ProductoId)INNER JOIN TiposFallo ON LineasReparacion.FalloId = TiposFallo.FalloId)INNER JOIN FallosFuncionales ON LineasReparacion.FalloFuncionalId = FallosFuncionales.FalloFuncionalId) INNER JOIN Empleados ON LineasReparacion.EmpleadoId = Empleados.EmpleadoId WHERE ClienteId = '" & auxSql & "'"

El problema viene en el SAT y en el NSerie, resulta que los campos SAT (Boolean como os podéis imaginar) me devuelve todos con valor No, cuando hay muchos que deberían ser Si, y en Nserie directamente me saltan todo NULL.

Espero que puedan ayudarme, y gracias por adelantado.

Un saludo! :porra:
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

Error en Consulta a una tabla

Publicado por leonardo_josue (877 intervenciones) el 24/07/2015 16:57:24
Hola Iraitz:

La consulta como tal, no tiene nada de malo (salvo el hecho e que todos los paréntesis en los JOIN's son completamente inútiles), por lo que puedo imaginar que con los filtros que tienes, o con los JOIN's, no tienes información con SAT = 1 o con NSerie distinto de nulo.

Te recomiendo que vayas por partes, es decir, ¿cuál de tus tablas se supone que tiene el campo SAT?, comienza por hacer un SELECT sólo a esta tabla utilizando el CASE-WHEN y observa su comportamiento.

una vez que tengas te asegures que esto funcione, vé agregando uno a uno los JOIN's verificando que la información que tienes sea consistente.

Si continuas con problemas, postea algunos datos de ejemplo de tus tablas, para poder hacer algunas pruebas.

Saludos
Leo.
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

Error en Consulta a una tabla

Publicado por iraitz (3 intervenciones) el 27/07/2015 08:44:26
Gracias por tu respuesta Leo.

Si que hay registro con Si en el tabla SAT que forma parte de LineasReparacion.

Anyway, ya lo solucioné, no se si estará bien codificado pero yendo paso a paso como me dijiste agregando JOIN´s vi que donde me fallaba era al meter TipoFallo y FalloFuncional, y poniéndole en vez un INNER un LEFT me lo muestra todo a la perfección.

Muchas gracias

P.D.: Así quedó la Query:

1
sql = "SELECT FechaRecepcion, ClienteCodigo, ProductoCodigo, Cantidad, NSerie, CASE WHEN SAT = 1 THEN 'Si' ELSE 'No' END AS SAT, FechaReparacion, Posicion, FalloCodigo, FalloFuncional, DescripcionLR, EmpleadoCodigo, Observaciones FROM LineasReparacion INNER JOIN Clientes ON LineasReparacion.ClienteIdLR = Clientes.ClienteId INNER JOIN Productos ON LineasReparacion.ProductoIdLR = Productos.ProductoId LEFT JOIN TiposFallo ON LineasReparacion.FalloIdLR = TiposFallo.FalloId LEFT JOIN FallosFuncionales ON LineasReparacion.FalloFuncionalIdLR = FallosFuncionales.FalloFuncionalId INNER JOIN Empleados ON LineasReparacion.EmpleadoIdLR = Empleados.EmpleadoId WHERE ClienteId = '" & auxSql & "' ORDER BY ProductoCodigo"
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