Query con inner join doble
Compadre tengo la siguiente consulta: yo cuando ejecuto la consulta omitiendo la parte de cheques me trae bien la parte de cuentascorrientes y si comento la parte de cuentascorrientes me trae bien la parte de cheques, pero si tengo ambos funcionando me trae datos incorrectos. Te pego la query y abajo 3 imágenes para que veas. Espero tu pronta respuesta.
select cp.razon,
CASE MAX(cp.tipoPersona)
WHEN 'CC' THEN ISNULL(SUM(ct.impoDebe-ct.impoHaber) ,0)
END as SaldoCTACTE,
CASE MAX(cp.tipoPersona)
WHEN 'CC' THEN ISNULL(sum(ch.impoCheque), 0)
END as SaldoCHEQUE
from cheques ch
inner join CABcobranzas cab on ch.idCABcobranza=cab.idCABcobranza
inner join ClientesProveedores cp on cp.cod_cli = cab.idclienteproveedor
inner join ctacteclientesproveedores ct on ct.idclienteproveedor = cp.cod_cli
WHERE cp.idEmpresa BETWEEN ISNULL(1,cp.idEmpresa)
AND ISNULL(3,cp.idEmpresa)
and cp.razon = 'T y L Cueros SA'
GROUP BY cp.Razon
RETURN
http://img198.imageshack.us/img198/2096/54217422.jpg
http://img98.imageshack.us/img98/8933/38818515.jpg
http://img198.imageshack.us/img198/7154/98597561.jpg
select cp.razon,
CASE MAX(cp.tipoPersona)
WHEN 'CC' THEN ISNULL(SUM(ct.impoDebe-ct.impoHaber) ,0)
END as SaldoCTACTE,
CASE MAX(cp.tipoPersona)
WHEN 'CC' THEN ISNULL(sum(ch.impoCheque), 0)
END as SaldoCHEQUE
from cheques ch
inner join CABcobranzas cab on ch.idCABcobranza=cab.idCABcobranza
inner join ClientesProveedores cp on cp.cod_cli = cab.idclienteproveedor
inner join ctacteclientesproveedores ct on ct.idclienteproveedor = cp.cod_cli
WHERE cp.idEmpresa BETWEEN ISNULL(1,cp.idEmpresa)
AND ISNULL(3,cp.idEmpresa)
and cp.razon = 'T y L Cueros SA'
GROUP BY cp.Razon
RETURN
http://img198.imageshack.us/img198/2096/54217422.jpg
http://img98.imageshack.us/img98/8933/38818515.jpg
http://img198.imageshack.us/img198/7154/98597561.jpg
Respuesta de brownsea
1