Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/10/2011, 17:37
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 17 años, 2 meses
Puntos: 85
Respuesta: Problema con Procedimiento Almacenado

Necesitas crear una tabla adicional (temporal, permanente o como retorno de una función) que contenga todos los períodos posibles y usarla en un outer join para generar los registros que faltan. Un poco simplificado, el ejemplo sería algo así:

Código:
create table facturas (id numeric(8), fecha_factura datetime)
insert into facturas values (1,'20110101')
--no hay facturas con fecha 20110102
insert into facturas values (2,'20110103')
insert into facturas values (3,'20110104')
go

create table periodos (fecha datetime)
insert into periodos values ('20110101')
insert into periodos values ('20110102')
insert into periodos values ('20110103')
insert into periodos values ('20110104')
go

select 
 isnull(facturas.id,0) factura, 
 facturas.fecha_factura,
 periodos.fecha periodo
from periodos 
 left join facturas on facturas.fecha_factura = periodos.fecha
go

--resultado de la consulta

factura fecha_factura periodo
1 2011-01-01 2011-01-01
0 NULL 2011-01-02 --período con 0 si no hay factura 
2 2011-01-03 2011-01-03
3 2011-01-04 2011-01-04
Saludos