Preencha as lacunas de data com a tabela de datas
Eu tenho duas mesas.
Uma tabela de pedidos com o cliente e data. Uma tabela de dimensão de data de um data warehouse.
A tabela de pedidos não contém atividade para cada data em um determinado mês, mas eu preciso retornar um conjunto de resultados que preenche as lacunas com data e cliente.
Por exemplo, eu preciso disso:
Customer Date =============================== Cust1 1/15/2012 Cust1 1/18/2012 Cust2 1/5/2012 Cust2 1/8/2012
Para ficar assim:
Customer Date ============================ Cust1 1/15/2012 Cust1 1/16/2012 Cust1 1/17/2012 Cust1 1/18/2012 Cust2 1/5/2012 Cust2 1/6/2012 Cust2 1/7/2012 Cust2 1/8/2012
Isso parece uma junção externa esquerda, mas não está retornando os resultados esperados. Aqui está o que estou usando, mas isso não está retornando a cada data da tabela de datas conforme o esperado.
SELECT o.customer,
d.fulldate
FROM datetable d
LEFT OUTER JOIN orders o
ON d.fulldate = o.orderdate
WHERE d.calendaryear IN ( 2012 );