Ver Mensaje Individual
  #1  
Antiguo 17-05-2013
Choclito Choclito is offline
Miembro
 
Registrado: jul 2004
Posts: 169
Reputación: 20
Choclito Va por buen camino
Unir los campos de dos consultas

Buenas tardes amigos del foro, trabajo con firebird, delphi 7 ,qreport, estoy haciendo un sistema de personal donde tengo que generar boletas de pago, para eso tengo e tablas , personal, descuentos, bonos
entonces tengo dos procedimientos almacenados uno para ver los descuentos del personal y otro para ver sus ingresos o bonos , ahora lo que quisiera es unir los dos SP pero unir sus campos, en cada uno tengo un campo comun.
El SP de descuentos me muestra lo siguiente
Código SQL [-]
select d.codigo,d.nombre,d.descuento,d.monto
from descuentos (:codigo,:mes,:anio) d
el SP de bonos me muestra lo siguiente:
Código SQL [-]
select b.codigo,b.nombre,b.monto,b.monto
from bonos (:codigo,:mes,:anio) b
todo con el fin de que tenga lo siguiente:
Código SQL [-]
select d.codigo,d.nombre,d.descuento,d.monto,b.bono,b.monto
from descuentos (:codigo,:mes,:anio) inner join bono (:codigo,:mes,:anio) 
on d.codigo=b.codigo

pero me muestra un producto carteciano, lo que pasa es que a veces descuentos tiene mas registros que bonos o a la inversa, todo esto lo hago para llevar a qreport y agruparlo por codigo y en la banda detail tener cuatro columnas :bono,monto_bono,descuento,monto_bono

pero con el inner join me duplica los datos por mas que coloque la sentencia distinc tengo el mismo problema,
Espero se entienda mi problema y espero sus paortes como siempre amigos del foro, o talves hubiese otra manera de solucionar , muchas gracias
Responder Con Cita