Pour prendre à cyberkiwi une mesure autre vous pourriez essayer le suivant. LÀ OÙ Richard a choisi de choisir date DISTINCTE, combinaisons de personnes, ce qui suit renverra un cartésien se joint de la date/des personnes (différence subtile).
eDatePeople.eventStartDate CHOISI, eDatePeople.SalesPersonID, compte (S3.SalesEventID) comme CountEvent
DE (
CHOISIR eDates.EventStartDate, ePeople.SalesPersonID
DE
(S1.eventStartDate DISTINCT CHOISI de S1 smd_salesEvent
LÀ OÙ S1.EventStartDate ENTRE #7/4/2010# et #7/10/2010#
ET S1.SaleTypeID = 1 ET S1.StoreID <> 0 ET S1.SaleEventStatus <> « cessent ») comme eDates,
(S2.salesPersonID DISTINCTS CHOISIS de S2 smd_salesEvent
LÀ OÙ S2.EventStartDate ENTRE #7/4/2010# et #7/10/2010#
ET S2.SaleTypeID = 1 ET S2.StoreID <> 0 ET S2.SaleEventStatus <> « cessent ») comme ePeople
) comme eDatePeople
La GAUCHE JOIGNENT S3 smd_salesEvent
SUR eDatePeople.eventStartDate = S3.eventStartDate
ET eDatePeople.SalesPersonID = S3.SalesPersonID
GROUPE PAR eDatePeople.eventStartDate, eDatePeople.SalesPersonID
Ceci a deux sous-questions qui choisissent les dates distinctes (eDates) et les personnes distinctes (ePeople) qui correspondent aux critères que vous avez choisis. Il les fusionne alors dans un cartésien se joignent (eDatePeople) qui te donne chaque combinaison de chaque date/personne pour ces critères. Enfin il joint l'eDatePeople de nouveau à smd_SalesEvent pour obtenir le compte de SalesEventID pour chaque combinaison de date/personne.
Ce qu'il ne fait pas est de garantir que vous aurez toutes les dates ce qui se produisent entre votre début et date de fin, puisque les autres critères pourraient renvoyer les disques zéro, ou un certain sous-ensemble de valeurs. Il renvoie également seulement des disques pour ces personnes de ventes qui ont au moins un disque qui répond à vos critères. Si une personne est des vacances ou ne participait pas à n'importe quel événement de ventes au cours de la période spécifique, leur nom n'apparaîtra pas du tout.
Si vous voudriez s'assurer que toutes les dates pendant une période sont retournées, vous pourriez employer une table des dates pour fournir la partie d'eDates de la question au lieu de la sous-question que j'ai employée.