Hola amigos tengo un problema con una consulta,en ésta consulta lo que hago es que saco todas las transacciones que se hicieron dado un rango de fechas sacando un saldo anterior,el problema que tengo es que cuando el producto no tiene movimientos debe salir el saldo anterior a la fecha sin presentar las transacciones de otra fecha quisiera saber que debo aumentar o quitar en esta consulta para que cuando un producto no tenga movimientos solo salga el saldo anterior.
De antemano gracias por su ayuda
SELECT distinct VistaDeTransaccionInventarioDetalleReporte.*,
ISNULL
((SELECT SUM(PdpCantidad) AS Cantidad
FROM TransaccionInventarioDetalle AS TD
WHERE (TD.PdpIdProducto = VistaDeTransaccionInventarioDetalleReporte.PdpIdPr oducto) AND (PdpIdTransaccionInventario IN
(SELECT PdpIdTransaccionInventario
FROM TransaccionInventario AS T
WHERE (PdpFechaTransaccion <='05/03/2008') AND (PdpEstado = 1) And (PdpSigno='+')
and PdpEstadoTransaccion=1
and (PdpIdBodega_Origen = VistaDeTransaccionInventarioDetalleReporte.PdpIdBo dega_Origen))) AND (PdpEstado = 1)), 0) AS PdpSaldoInicialEntradas,
ISNULL
((SELECT SUM(PdpCantidad) AS Cantidad
FROM TransaccionInventarioDetalle AS TD
WHERE (TD.PdpIdProducto = VistaDeTransaccionInventarioDetalleReporte.PdpIdPr oducto) AND (PdpIdTransaccionInventario IN
(SELECT PdpIdTransaccionInventario
FROM TransaccionInventario AS T
WHERE (PdpFechaTransaccion <='05/03/2008') AND (PdpEstado = 1) And (PdpSigno='-')
and PdpEstadoTransaccion=1
and (PdpIdBodega_Origen = VistaDeTransaccionInventarioDetalleReporte.PdpIdBo dega_Origen))) AND (PdpEstado = 1)), 0) AS PdpSaldoInicialSalidas
from VistaDeTransaccionInventarioDetalleReporte
--where dbo.VistaDeTransaccionInventarioDetalleReporte.Pdp FechaTransaccion between '05/03/2008'and '06/04/2008'
UNION
SELECT distinct VistaDeTransaccionInventarioDetalleReporte.*,
ISNULL
((SELECT SUM(PdpCantidad) AS Cantidad
FROM TransaccionInventarioDetalle AS TD
WHERE (TD.PdpIdProducto = VistaDeTransaccionInventarioDetalleReporte.PdpIdPr oducto) AND (PdpIdTransaccionInventario IN
(SELECT PdpIdTransaccionInventario
FROM TransaccionInventario AS T
WHERE (PdpFechaTransaccion <='05/03/2008') and (PdpEstado = 1) And (PdpSigno='+')
and PdpEstadoTransaccion=1
and (PdpIdBodega_Origen = VistaDeTransaccionInventarioDetalleReporte.PdpIdBo dega_Origen))) AND (PdpEstado = 1)), 0) AS PdpSaldoInicialEntradas,
ISNULL
((SELECT SUM(PdpCantidad) AS Cantidad
FROM TransaccionInventarioDetalle AS TD
WHERE (TD.PdpIdProducto = VistaDeTransaccionInventarioDetalleReporte.PdpIdPr oducto) AND (PdpIdTransaccionInventario IN
(SELECT PdpIdTransaccionInventario
FROM TransaccionInventario AS T
WHERE (PdpFechaTransaccion <='05/03/2008') and (PdpEstado = 1) And (PdpSigno='-')
and PdpEstadoTransaccion=1
and (PdpIdBodega_Origen = VistaDeTransaccionInventarioDetalleReporte.PdpIdBo dega_Origen))) AND (PdpEstado = 1)), 0) AS PdpSaldoInicialSalidas
from VistaDeTransaccionInventarioDetalleReporte
--where dbo.VistaDeTransaccionInventarioDetalleReporte.Pdp FechaTransaccion between '05/03/2008'and '06/04/2008'