Principales respuestas
Mostrar en formulario maestro detalle Consulta de tres tablas en sql server

Pregunta
-
Hola a todos muy buenas tardes aquí molestando nuevamente tengo mi formulario de ingreso de datos que es este
cuando hago las consultas por separado me muestra las tres tablas de la siguiente manera
y me gustaría regresar a la misma form en el mismo formulario o en algún otro pero que tenga la misma forma la verdad no lo he conseguido.
se que uds. o me pueden ayudar o dar mejores ideas de como mostrar los datos, si me pregunta porque quiero hacer esto, es porque el algún momento se va a tener que editar un parte y pues hay que mostrar los datos para poderlos editar.
este es mi código
SELECT CabeceraLanzEquipos.NumeroParte, CabeceraLanzEquipos.CodigoEquipo, CabeceraLanzEquipos.FechaParte, CabeceraLanzEquipos.Turno, CabeceraLanzEquipos.HorimetroHinicio, CabeceraLanzEquipos.HorimetroFin, CabeceraLanzEquipos.HorasTrabajadas, CabeceraLanzEquipos.HoraJornadaInicio, CabeceraLanzEquipos.HoraJornadaFin, DetalleLanzamientoHoras.IdDetalleLanzamientoHoras, DetalleLanzamientoHoras.IdCabeceraLanzEquipos, DetalleLanzamientoHoras.HInicio, DetalleLanzamientoHoras.HFin, DetalleLanzamientoHoras.HoraT, DetalleLanzamientoHoras.IdPlanodeCuenta, DetalleInterferencias.IdDetalleInterferencias, DetalleInterferencias.IdCabeceraLanzEquipos AS Expr1, DetalleInterferencias.HInicio AS Expr2, DetalleInterferencias.HFin AS Expr3, DetalleInterferencias.HoraT_Int, DetalleInterferencias.IdInterferencia FROM CabeceraLanzEquipos INNER JOIN DetalleLanzamientoHoras ON CabeceraLanzEquipos.IdCabeceraLanzEquipos = DetalleLanzamientoHoras.IdCabeceraLanzEquipos INNER JOIN DetalleInterferencias ON CabeceraLanzEquipos.IdCabeceraLanzEquipos = DetalleInterferencias.IdCabeceraLanzEquipos
completo
también pensaba mostrarlo en dos datagrid diferentes, me me gustaría que me ayuden a resolverlo para que sea la misma vista.
agradezco sus ideas.
Roberto
Respuestas
-
buen día Javi muchas gracias intentare hacer de esta manera creo que lo mas rapido por ahora es hacerlo con dos datagridview y una sola cabecera. ya mas después cambiare
gracias
Roberto
- Marcado como respuesta Roberto C. Melgar martes, 26 de febrero de 2019 12:34
Todas las respuestas
-
Hola Roberto.
Desde el punto de vista de los datos, es bastante fácil. Tu ya casi lo tienes, solo tienes que cambiar esos INNER JOIN por left join, porque una cabecera, puede o no tener detalle y según la consulta, si le dices, inner, entonces si no tiene detalle, no hay cabecera.
Por otro lado, Tal cual lo estas planteando, es un formulario de edición, por tanto solo hay una cabecera, entonces, tendrás textbox, y para el detalle un datagrid, y para detalle interferencias, pues no se, porque no se lo que es, no se que modelo de datos tiene y no he visto la estructura de los mismos, pero me supongo que será un detalle de la cabecera.
Por tanto otro dataGrid.
Ahora bien, porque no puedes hacer tres consultas, o una consulta, que recoja mediante por ejemplo un dataset y tres dataTables los 3 conjuntos de datos, y tu los relacionas en capa cliente. Si es uno solo como me supongo pues ya esta, y si quieres más, pues más, y cuando cambias en el primero, filtras los registros en los detalles.
Si tienes muchos datos, pues cuando cambia el primero, vas a buscar sus detalles, todo es depende de.....tienes que entender que todo es susceptible, de hacerlo de otro modo. Si yo te digo que te lo traigas todo a la vez, y resulta que tus tablas tienen 400 millones de registros.....ufff
Todo depende de multitud de factores, base de datos, tecnología que utilizas, red, latencia,...y un sinfín de parámetros.
Espero mi dialogo te ayude. que estoy un poco pesado de mente, y a veces se me va la pinza :)
- Propuesto como respuesta Pedro Alfaro lunes, 25 de febrero de 2019 21:19
-
-
buen día Javi muchas gracias intentare hacer de esta manera creo que lo mas rapido por ahora es hacerlo con dos datagridview y una sola cabecera. ya mas después cambiare
gracias
Roberto
- Marcado como respuesta Roberto C. Melgar martes, 26 de febrero de 2019 12:34
-