PDA

Ver la Versión Completa : incluir dos detalles en QuickReport.....!


uper
10-11-2005, 20:51:54
hola a todos

necesito hacer un reporte de dos tablas detalle, es decir manejo una tabla pedido y detalle_1 y detalle_2.
Las actualizaciones las hago por medio del Ibdataset por separado, ya que en la tabla detalle_1 se van agregando ordenes y en el detalle_2 son para agregar otros elementos, esta fue la unica razon de poder incluir en un pedido dos detalle por manejar informacion para produccion.

Yo quisiera saber como podria hacer un Ibquery o dos Query segun para que me pueda dar como resultado los dos detalles incluidos en una sola sentencia sql, por que considerando el modelo a veces se incluyen los otros elementos o a veces los dos detalles o solo se incluye los otros elementos.

obteniendo el query como seria plasmado en el Quickreport.

espero haberme entendido, Alguien ha incluido dos detalle en un solo quickreport, bueno les agradesco alguna referencia por que no se como hacerlo, muchas gracias.

jachguate
10-11-2005, 22:52:05
lo siento, pero no entendí nada.. :confused:

uper
11-11-2005, 00:05:57
Hola

me refiere a formar una subconsulta pero no encuentro nada en la web, no es que los moleste o algo por el estilo solo quiero hacer una sola consulta abarcando las tres tablas.

Pedido
Ped_detalle
Ped_Otros


gracias.

vtdeleon
11-11-2005, 00:11:25
Saludos

Bueno, dinos o plantea aquí las estructura de cada tabla (con 2 o 3 registro), y como deseas que ésta consulta quede

*Utiliza la etiqueta [code] [/code ] para hacer la estructura

nidia
11-11-2005, 12:02:08
Hola

"solo quiero hacer una sola consulta abarcando las tres tablas."

Pedido
Ped_detalle
Ped_Otros


gracias.
bueno, si lo que quieres es que en de una misma consulta puedan regresarte valores de las 3 tablas, imagino que hay un campo en comun entre las 3 tablas para que puedan relacionarse algún id. de detalle.

select p.campo1,p.campo2..., d.campo1,d.campo2...,o.campo1,o.campo2...
from (ped_detalle d join pedido p on d.id_pedido=p.id_pedido) join ped_otros o on p.id_pedido=o.id_pedido
where condiciones (debes hacer referencia a cada campo con el alias-de-tabla.campo, como en la parte del select)

con esto estas reacionando las 3 tablas segun el número de pedido que sea igual en las 3 tablas.
bueno eso fue o que entendi que necesitabas!!

Emilio
11-11-2005, 19:08:14
espero haberme entendido
Espero que hayas conseguido entenderte :D

uper
11-11-2005, 23:12:32
hola

estoy intentando como generar la sentencia sql y como quedaria en el quickReport,
tabla pedido

PEDIDO_ID, PED_CLIENTE, PED_FECHA, PED_IVA, PED_SUBTOTAL, PED_TOTAL

Tabla detalle1
DET_IND, DET_ORDEN, DET_CANTIDAD, DET_PRECIO

tabla detalle2
DET_ANX_ID, DET_ANX_MAT, DET_ANX_CANTIDAD, DET_ANX_PRECIO


donde: DET_IND, DET_ANX_ID van refenciadas a PEDIDO_ID.
como explicaba, que bandas uso para que me de el reslutado de las tres tablas, en caso de que las tres tablas tuviese informacion o solo una de las dos del detalle.
intente interpretar esto para interbase

Select PEDIDO_ID, PED_CLIENTE, PED_IVA, PED_SUBTOTAL, PED_TOTAL, DET_IND, DET_ORDEN,
DET_CANTIDAD, DET_PRECIO, DET_ANX_ID, DET_ANX_MAT, DET_ANX_CANTIDAD, DET_ANX_PRECIO
from PEDIDOS inner join PEDIDOS_DET on PEDIDOS_DET.DET_IND=PEDIDOS.PEDIDO_ID)
inner join PEDIDOS_ANEXOS on PEDIDOS_ANEXOS.DET_ANX_ID=PEDIDOS.PEDIDO_ID)
where PEDIDOS.PEDIDO_ID
in (select DET_IND from PEDIDOS_DET where PEDIDOS_DET.DET_IND=PEDIDOS.PEDIDO_ID)
and PEDIDO_ID=1


pero el resulta en el quickreport no es el esperado en pantalla me vuelve a duplicar los regsitros para ser impresos use un Qrband-rbDetail


cantidad clave descripcion
1 1 producto1
1 2 producto2
1 1 --->me duplica
1 2 --->me duplica


esos es lo quiero hacer, la verdad no se como incluir esta consulta en el quickreport.
Gracias.

nidia
12-11-2005, 22:54:46
si en clave es donde se te duplican los valores, le has calado con order by por clave, y cantidad para que lo pueda hacer unicos

CIMERO
17-05-2007, 01:45:35
Probaste usando left join? seria:
select * from <tablaprincipal>
left join tabla1 on tablaprincipal.campo=tabla1.campo
left join tabla2 on tablaprincipal.campo=tabla2.campo

el left join trae todos, los campos de la tabla que esta a la izquierda, en este caso tablaprincipal, y los de la derecha si existen, de lo contrario deja null.
suerte!!

egostar
17-05-2007, 01:57:34
Hola CIMERO, bienvenido al Club, parece que tu comentario llega un poco tarde, el último post fue hecho el 12/11/2005, de todas formas se agradece tu intervención.

Te invito a que leas nuestra Guía de Estilo (http://www.clubdelphi.com/foros/guiaestilo.php) y la otra Guía de Estilo. (http://www.clubdelphi.com/foros/showpost.php?p=112824&postcount=6)

Pues nada, nuevamente bienvenido y espero disfrutes y aproveches todo lo que tenemos en el Club.

Salud OS