Cuestión : ¿Cómo puedo volver una fila ficticia en un sistema del resultado?

La pregunta siguiente hace una cuenta de filas agrupadas por Date y la persona de las ventas.  Necesito dar a toda la persona de las ventas de las fechas sin filas una cuenta de cero. ¿Hay una manera de hacer esto en la pregunta sí mismo? class= " lineNumbers " >
1 del >


SELECT codeBody s.eventStartDate, s.salesPersonID, cuenta (s.salesEventID) del " prettyprint " del class= del id= " codeSnippet804994 " del >
0) Y (el <> (s.saleEventStatus) " continúa "))
GRUPO POR s.eventStartDate, s.salesPersonID
TENIENDO (((s.eventStartDate) entre #7/4/2010# y #7/10/2010#));
class= > " claro " de 
class= del

Respuesta : ¿Cómo puedo volver una fila ficticia en un sistema del resultado?

Para tomar a cyberkiwi una medida más futura usted podría intentar el siguiente.  DONDE Richard eligió seleccionar fecha DISTINTA, combinaciones de la gente, lo que sigue volverá un cartesiano ensambla de la fecha/de la gente (diferencia sutil).

eDatePeople.eventStartDate SELECTO, eDatePeople.SalesPersonID, cuenta (S3.SalesEventID) como CountEvent
DE (
SELECCIONAR eDates.EventStartDate, ePeople.SalesPersonID
DE
(S1.eventStartDate DISTINTO SELECTO del S1 smd_salesEvent
DONDE S1.EventStartDate ENTRE #7/4/2010# y #7/10/2010#
Y S1.SaleTypeID = 1 Y S1.StoreID <> 0 Y S1.SaleEventStatus <> “continúan”) como eDates,
(S2.salesPersonID DISTINTOS SELECTOS de S2 smd_salesEvent
DONDE S2.EventStartDate ENTRE #7/4/2010# y #7/10/2010#
Y S2.SaleTypeID = 1 Y S2.StoreID <> 0 Y S2.SaleEventStatus <> “continúan”) como ePeople
) como eDatePeople
La IZQUIERDA ENSAMBLA S3 smd_salesEvent
EN eDatePeople.eventStartDate = S3.eventStartDate
Y eDatePeople.SalesPersonID = S3.SalesPersonID
GRUPO POR eDatePeople.eventStartDate, eDatePeople.SalesPersonID

Esto tiene dos subconsultas que seleccionen a las fechas distintas (eDates) y a gente distinta (ePeople) que corresponden a los criterios que usted ha seleccionado.  Entonces los combina en un cartesiano ensambla (eDatePeople) que le dé cada combinación de cada fecha/persona para esos criterios.  Finalmente ensambla el eDatePeople de nuevo a smd_SalesEvent para conseguir la cuenta de SalesEventID para cada combinación de la fecha/de la persona.

Qué no hace es garantizar que usted tendrá todas las fechas cuál ocurre entre su comienzo y fecha de extremo, puesto que los otros criterios podrían volver los expedientes cero, o un cierto subconjunto de valores.  También vuelve solamente los expedientes para esa gente de las ventas que tenga por lo menos un expediente que cumpla sus criterios.  Si una persona está el vacaciones o no participó en ningún acontecimiento de ventas durante el período especificado, su nombre no aparecerá en absoluto.

Si usted quisiera asegurarse de que todas las fechas durante una duración estén vueltas, usted podría utilizar una tabla de fechas para subir con la porción de los eDates de la pregunta en vez de la subconsulta que utilicé.
Otras soluciones  
 
programming4us programming4us