![]() |
Combinar tablas para un Reporte
Hola, tengo una tabla TblMueble la cual tiene un campo Rubro en el que guardo los valores del campo Código de la tabla TblRubro, esta relación la hago mediante un DBLookupComboBox, osea que en el DBLookCombo muestro la descripcion del Rubro pero en la Tabla TblMueble guardo el Código.
El problema está cuando hago el reporte de la tabla TblMueble ya que como es obvio me muestra en el campo Rubro sólo números (Código), y yo lo que quiero es que en el reporte me muestre la descripción de dicho Rubro para que el mismo sea más claro, y para esto debería combinar las Tablas de tal forma que haga esto. Alguien me podría dar una idea o si saben como se logra esto, es decir combinar las tablas. Gracias, saludos. Silvio.- |
Hola Silviodp. No indicas el motor de datos con el que trabajas... aunque supongo que esto debiera correr en cualquiera.
Lo que tenes que hacer es un join (o encuentro) de las tablas. Algo como Código:
Select mueble.codigo, mueble.nombre, rubro.descripcion desc_rubro Hasta luego. ;) |
No es que lo quiera corregir a jachguate, pero me parece mas legible algo del estilo:
Código:
SELECT |
bueno... el que la consulta sea válida o no, dependerá del motor de base de datos, ya que esta sintaxis para los joins hay algunos que no se atreven a implementarla... (o se han atrevido ya en versiones muy recientes, por ejemplo Oracle).
Hasta luego. ;) |
Sólo aclarar que lo que ha puesto Juan Antonio y Gydba no es exactamente lo mismo. Para que fuera exactamente lo mismo, en lugar de un LEFT JOIN se tendría que haber puesto un INNER JOIN
|
:o :o cierto... cierto... no me habia dado cuenta, asumí que se trataba de un inner join. :p
|
Si, estoy de acuerdo con catedill que no son lo mismo.
Por otro lado me llamó la atención eso de: "esta sintaxis para los joins hay algunos que no se atreven a implementarla" de jachguate, comprendo bien que algunos motores tengan ciertas limitaciones pero que algunos no se atrevan a implementarlo me lleva a preguntar ¿Por qué? ¿Qué riesgos tiene el utilizar joins para este tipo de consultas? |
Cita:
Hasta luego. ;) |
:), como diría Homero ando un poco "lelo" el día de hoy.
|
Combinar tablas para un Reporte
Sí entiendo lo que tengo que hacer, pero ese código tengo que escribirlo dentro de la propiedad SQL de la Query?, y luego ejecutarlo desde mi programa?
Gracias. Silvio.- |
Hola Silvio. Te recomiendo leer un libro sobre delphi (la mayoría incluyen un capítulo o dos para diseño de reportes). Podes iniciar con La Cara oculta de delphi, que podes descargar desde la web de su autor http://www.marteens.com.
A grandes razgos, en un Tquery meté la sentencia, agregas los campos. Crea un Nuevo QuickReport, asocialo al query mediante su propiedad dataset. Luego pones una banda de título, una de header y una de detalle (simplemente haciendo doble clic sobre la parte blanca del reporte, añadí estas bandas). En la banda detalle, añadí tantos TqrDBText como sea necesario, y asocia cada uno al DataSet (query) y al campo que queres que imprima. Si abris el query en tiempo de diseño, podes previsualizar el reporte usando el menú contextual de quick report. Hasta luego. ;) |
Combinar tablas para un Reporte
Está bien en realidad esa no era mi pregunta, es decir como se crea un QReport, eso creo que lo sé hacer, el problema era la combinación de tablas. Más precisamente era si una vez que escribí las sentencias SQL donde las ejecuto, o sea tengo que ponerlas en la propidad SQL del Query????????
A veces las preguntas no son completas pero tampoco a veces lo son las respuestas!!! Gracias, saludos.- Silvio.- |
Cita:
Cita:
|
Cita:
Sin ánimo de entrar en polémica... pero hay cosas que son bastante obvias (como el que una sentencia SQL debe ir en la propiedad SQL). Luego de tu segunda pregunta, yo supuse que no sabias nada y, en buen plan, traté de orientarte un poco mas. Si ya lo tenias mas claro, quizas te hubiera costado el mismo esfuerzo que hacer esa pregunta aqui, pegar el código en la propiedad SQL y ver que sucedia... no te parece? Creo que el objetivo final de los foros, o al menos el mio en particular, es lograr que la gente investigue un poco mas por su cuenta, se atreva a probar, y ya que las cosas no le salen, que venga aqui a plantear sus dudas..... de esa forma todos nos ayudamos un poco. Pero si no es asi, muchas veces da la impresión que se trabaja por los demás... y la primera opción es preguntar en el club (muchas veces incluso sin utilizar la busqueda en los históricos), cuando debiera ser despues de haber investigado. Cada caso es distinto... pero estamos hablando de actitud. No echo todo este rollo aqui por vos... pero aprovecho la oportunidad para que quienes lo vean se cuestionen un poco y juzguen si tengo o no tengo razón. Hasta luego. ;) |
Cita:
// Saludos |
Me voy a permitir introducir una fábula de Samaniego.
Simplemente es a modo de ejemplo, que nadie se dé por aludido, es a modo de reflexión. Cita:
Un Saludo a todos. |
Combinar tablas para un Reporte
Creo que a muchos no les ha gustado mi respuesta anterior, por eso pido disculpas. Pero creo que siempre agradecí la ayudan que me dan en el foro, aunque sinceramente muchas veces no era lo que yo necesitaba.
Lo que quiero que me entiendan es que nadie pregunta porque sabe, si pregunto algo es porque realmente no lo sé, y lo necesito, tampoco nunca quise que nadie trabaje por mí o para mí. Nuevamente pido disculpas, y gracias. Silvio.- |
La franja horaria es GMT +2. Ahora son las 04:42:44. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi