Pergunta : Como posso eu retornar uma fileira fitícia em um jogo do resultado?

A seguinte pergunta faz uma contagem das fileiras agrupadas por Data e por pessoa das vendas.  Eu preciso de dar a toda a pessoa das vendas das datas sem fileiras uma contagem de zero. Há uma maneira de fazer isto na pergunta própria? class= " lineNumbers " >
1 do >


SELECT codeBody s.eventStartDate do " prettyprint " " do class= do id= " codeSnippet804994 do >
0) E (o <> (s.saleEventStatus) " interrompe "))
GRUPO por s.eventStartDate, s.salesPersonID
TENDO (((s.eventStartDate) entre #7/4/2010# e #7/10/2010#));
class= > " desobstruído " de 
class= do

Resposta : Como posso eu retornar uma fileira fitícia em um jogo do resultado?

Para tomar a cyberkiwi uma etapa mais adicional você poderia tentar o seguinte.  ONDE Richard escolheu selecionar data DISTINTA, combinações dos povos, o seguinte retornará um cartesiano junta-se da data/povos (diferença subtil).

eDatePeople.eventStartDate SELETO, eDatePeople.SalesPersonID, contagem (S3.SalesEventID) como CountEvent
DE (
SELECIONAR eDates.EventStartDate, ePeople.SalesPersonID
DE
(S1.eventStartDate DISTINTO SELETO do S1 smd_salesEvent
ONDE S1.EventStartDate ENTRE #7/4/2010# e #7/10/2010#
E S1.SaleTypeID = 1 E S1.StoreID <> 0 E S1.SaleEventStatus <> “interrompem”) como eDates,
(S2.salesPersonID DISTINTOS SELETOS de S2 smd_salesEvent
ONDE S2.EventStartDate ENTRE #7/4/2010# e #7/10/2010#
E S2.SaleTypeID = 1 E S2.StoreID <> 0 E S2.SaleEventStatus <> “interrompem”) como o ePeople
) como o eDatePeople
A ESQUERDA JUNTA-SE a S3 smd_salesEvent
EM eDatePeople.eventStartDate = S3.eventStartDate
E eDatePeople.SalesPersonID = S3.SalesPersonID
GRUPO por eDatePeople.eventStartDate, eDatePeople.SalesPersonID

Isto tem dois subqueries que selecionam as datas distintas (eDates) e os povos distintos (ePeople) que correspondem aos critérios que você selecionou.  Funde-os então em um cartesiano junta-se (eDatePeople) que lhe dê cada combinação de cada data/pessoa para aqueles critérios.  Finalmente junta-se ao eDatePeople de volta a smd_SalesEvent para começ a contagem de SalesEventID para cada combinação da data/pessoa.

O que não faz é garantir que você terá todas as datas quais ocorrem entre sua começo e data de extremidade, desde que os outros critérios poderiam retornar os registros zero, ou algum subconjunto dos valores.  Igualmente retorna somente registros para aqueles povos das vendas que têm pelo menos um registro que encontra seus critérios.  Se uma pessoa está em férias ou não participou em nenhum evento de vendas durante o período especific, seu nome não aparecerá de todo.

Se você gostaria de se assegurar de que todas as datas durante uma extensão de tempo estivessem retornadas, você poderia usar uma tabela das datas para vir acima com a parcela dos eDates da pergunta em vez do subquery que eu me usei.
Outras soluções  
 
programming4us programming4us