Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como Mostrar registros de 3 tablas diferentes en una sola grilla? (https://www.clubdelphi.com/foros/showthread.php?t=75589)

oscarac 05-09-2011 15:41:27

negrokau

codigo fuente es.... por decirlo de alguna manera
las instrucciones que estan coleccionadas en una unidad,
dicho de otra manera....
cuando abres un archivo .pas, las instrucciones que estan contenidas en el, se llaman codigo fuente

estoy empezando a sospechar que quieres aprender pero estas saltandote pasos muy importantes.. para correr hay que caminar y para caminar hay que gatear

negrokau 05-09-2011 15:57:06

denme alguna pista, no entiendo mucho lo que me piden, ayudenme por favor, estoy aprendiendo y me cuesta mucho, no soy auto didacta, por eso es que estoy asi, pero procuro de que me salga bien.... comprendanme...:(

oscarac 05-09-2011 16:01:42

Cita:

Empezado por negrokau (Mensaje 410908)
denme alguna pista, no entiendo mucho lo que me piden, ayudenme por favor, estoy aprendiendo y me cuesta mucho, no soy auto didacta, por eso es que estoy asi, pero procuro de que me salga bien.... comprendanme...:(

querras decir que SI eres autodidatca... yo tambien lo soy.. nadie me ha enseñado Delphi, lo que he aprendido, lo hice con mucho esfuerzo, horas de practica, muchas metidas de pata y tropezones....

te recomiendo lo siguiente....

has como el psicopata descuartizador..... vamos por partes

trata de separar tus prioridades de acuerdo a tus necesidades, y enfocate en ellas, practica mucho, lee mucho y para los autodidactas todo se refleja en prueba y error

cuando hagas preguntas trata de ser lo mas explicito posible y es mejor si colocas estructuras de las tablas y la informacion que tienen, asi como un ejemplo de como quieres que salga
se sabe que la curva de aprendizaje es algo complicada pero no es dificil

saludos y que la fuerza te acompañe

negrokau 05-09-2011 16:30:51

Gracias por las sugerencias, voy a seguir intentandolo y esforzandome,
Código SQL [-]
Tabla Compras
ID=COD_COMPRA
NRO_BOLETA
PROVEEDOR
FECHA
PRODUCTO
CANTIDAD
IMPORTE
TIPO_COMPRA
Tabla Facturas
id=COD_FACT
FECHA
TOTAL
RUC
NOMBRE
Tabla Remision
id=COD_REMI
FECHA
TOTAL
NOMBRE
Este fue mi consulta
Código SQL [-]
WITH Q_REPORTE2 DO
BEGIN
SQL.Clear;
SQL.Add('SELECT CAST(FACTURAS.COD_FACT AS CHAR(10)) || '' '' || ');
SQL.Add('CAST(REMISION.COD_REMI AS CHAR(10)) || '' '' || ');
SQL.Add('CAST(COMPRAS.NRO_BOLETA AS CHAR(10)) AS TRES_CAMPOS_EN_UNA_COLUMNA');
SQL.Add('FROM FACTURAS, REMISION, COMPRAS');
Open;
END;
ya saben que quiero mostrar en una sola columna los registros de cod_fact de la tabla FACTURAS, COD_REMI de la tabla REMISION y NRO_BOLETA de la tabla COMPRAS.
Mi query se llama Q_REPORTE2, uso data source y DBgrid, no se mas que datos necesitan para ayudarme :o ojala haya sido suficiente...

oscarac 05-09-2011 16:32:41

estas tablas se relacionan entre si? o son independientes?

negrokau 05-09-2011 16:34:57

son independientes, no se tienen relacion alguna entre si...

oscarac 05-09-2011 16:36:08

entonces la respuesta esta en el post #2
con eso lo haces

oscarac 05-09-2011 16:40:07

pero en forma particular (quiza tu tengas otros motivos), resulta algo inapropiado tratar de unir 3 tablas en una cuando los datos podrian ser cualquier cosa

debes tener un criterio para la union (digamos que esas tablas tengan miles de registros), entonces el resultado que esperas obtener quiza no sea al deseado), por eso te digo que debe existir un nexo entre ellas, para solo extraer los datos requeridos

oscarac 05-09-2011 16:42:06

Código SQL [-]
 
select 'Factura' as tipo, nro_factura AS numero from facturas where..... condicion
union
select 'Remision' as tipo, nro_remision AS numero from remisiones where..... condicion
union
select 'Compras' as tipo, nro_compra AS numero from compras where..... condicion

negrokau 05-09-2011 16:55:52

el motivo es que es para un reporte diario, donde mi condición es la FECHA, al poner la fecha, me estire todas las facturas(cod_fac), remisiones(cod_remi) y compras(nro_boleta), en una grilla realizadas en ese dia, esa es mi idea, un simple reporte, solo que implica los datos de 3 tablas diferentes... me explico?

ecfisa 05-09-2011 16:59:41

Hola.

Te adjunto un demo que contiene la consulta en la propiedad SQL del IBQuery y también por código en el evento OnShow del form, quizá verlo te sirva de ayuda.

Para la misma uso las tablas customer, employee y vendors de mastsql.gdb, que en Delphi 7 está ubicado en:
Cita:

C:\Program Files\Common Files\Borland Shared\Data\mastsql.gdb
(Dejé el login prompt activado para evitar discrepancias en la contraseña)

Un saludo.

oscarac 05-09-2011 17:06:16

Cita:

Empezado por negrokau (Mensaje 410922)
el motivo es que es para un reporte diario, donde mi condición es la FECHA, al poner la fecha, me estire todas las facturas(cod_fac), remisiones(cod_remi) y compras(nro_boleta), en una grilla realizadas en ese dia, esa es mi idea, un simple reporte, solo que implica los datos de 3 tablas diferentes... me explico?

ves?
ya estas colocando una condicion que no especificaste desde el principio y que en el query que tu hiciste tampoco esta

fijate en el ejemplo de ecfisa y comentas

negrokau 05-09-2011 17:48:38

ya estuve mirando, probe y me funciona, solo que los 3 registro muestra en la misma columna y en la misma fila, lo que quiero es que me muestre en la misma columna que hace eso pero uno bajo otro(por separado), y no en la misma fila...

oscarac 05-09-2011 17:49:52

Cita:

Empezado por negrokau (Mensaje 410935)
ya estuve mirando, probe y me funciona, solo que los 3 registro muestra en la misma columna y en la misma fila, lo que quiero es que me muestre en la misma columna que hace eso pero uno bajo otro(por separado), y no en la misma fila...

como???? disculpa no entendi...
puedes colocar un ejemplo de como te esta saliendo?

negrokau 05-09-2011 18:10:30

algo asi quiero que salga....

oscarac 06-09-2011 15:27:41

asi con repetidos?

entonces usa la consuilta que te puse anteriormente

Código Delphi [-]
 
select 'Factura' as tipo, nro_factura AS numero from facturas where Fecha = :Fecha
union
select 'Remision' as tipo, nro_remision AS numero from remisiones where Fecha = :Fecha
union
select 'Compras' as tipo, nro_compra AS numero from compras where Fecha = :Fecha


La franja horaria es GMT +2. Ahora son las 04:43:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi