Frage : Wie kann ich eine erfundene Reihe in Resultatseinsetzen zurückbringen?

Die folgende Frage tut einen Zählimpuls Reihen, die von Date und von der Verkaufsperson gruppiert.  Ich muss der ganzer Datumverkaufsperson ohne Reihen einen Zählimpuls von null geben. Gibt es eine Weise, dies in der Frage selbst zu tun?


1:
2:
3:
4:
5:
SELECT s.eventStartDate, s.salesPersonID, gelten (s.salesEventID) ALS CountEvent
VON smd_salesEvent s
WO (((s.saleTypeID) =1) UND ((s.storeID) <>0) UND (<> (s.saleEventStatus) " einstellen "))
GRUPPE DURCH s.eventStartDate, s.salesPersonID
HABEN (((s.eventStartDate) zwischen #7/4/2010# und #7/10/2010#));

Antwort : Wie kann ich eine erfundene Reihe in Resultatseinsetzen zurückbringen?

Um einen weiteren Schritt zu unternehmen cyberkiwi konnten Sie das folgende versuchen.  WO Richard beschloß vorzuwählen, EINDEUTIGES Datum, Leutekombinationen, zurückbringt das folgende ein kartesisches verbindet vom Datum/von den Leuten (subtiler Unterschied).

AUSERWÄHLTES eDatePeople.eventStartDate, eDatePeople.SalesPersonID, gelten (S3.SalesEventID) als CountEvent
VON (
eDates.EventStartDate, ePeople.SalesPersonID VORWÄHLEN
VON
(AUSERWÄHLTES EINDEUTIGES S1.eventStartDate VON smd_salesEvent S1
WO S1.EventStartDate ZWISCHEN #7/4/2010# und #7/10/2010#
UND S1.SaleTypeID = 1 UND S1.StoreID <> 0 UND S1.SaleEventStatus <> „einstellen“) als eDates,
(AUSERWÄHLTE EINDEUTIGE S2.salesPersonID VON smd_salesEvent S2
WO S2.EventStartDate ZWISCHEN #7/4/2010# und #7/10/2010#
UND S2.SaleTypeID = 1 UND S2.StoreID <> 0 UND S2.SaleEventStatus <> „einstellen“) als ePeople
) als eDatePeople
LINKS VERBINDEN smd_salesEvent S3
AUF eDatePeople.eventStartDate = S3.eventStartDate
UND eDatePeople.SalesPersonID = S3.SalesPersonID
GRUPPE DURCH eDatePeople.eventStartDate, eDatePeople.SalesPersonID

Dieses hat zwei Subqueries, die die eindeutigen Daten (eDates) und die eindeutigen Leute (ePeople) vorwählen die den Kriterien entsprechen, die, Sie vorgewählt.  Es vermischt sie dann in einem kartesischen verbindet (eDatePeople) das Ihnen jede Kombination jedes Datums/Person für jene Kriterien gibt.  Schließlich anschließt es eDatePeople zurück zu smd_SalesEvent t, um den Zählimpuls von SalesEventID für jede Datum-/Personenkombination zu erhalten.

Was es nicht tut, ist, zu garantieren, dass Sie alle Daten haben, welche zwischen Ihrem Anfang und Enddatum, da die anderen Kriterien nullaufzeichnungen zurückbringen konnten, oder irgendeine Teilmenge Werte auftreten.  Es auch zurückbringt nur Aufzeichnungen für jene Verkaufsleute rkaufs, die mindestens eine Aufzeichnung haben, die Ihre Kriterien erfüllt.  Wenn eine Person auf Ferien ist oder nicht an irgendeinem Verkaufsereignis während des spezifizierten Zeitraums teilnahm, zeigt ihr Name nicht überhaupt.

Wenn Sie garantieren möchten, dass alle Daten während einer Zeitspanne zurückgebracht, konnten Sie eine Tabelle der Daten benutzen, um mit dem eDates Teil der Frage anstelle vom Subquery aufzukommen, den ich verwendete.
Weitere Lösungen  
 
programming4us programming4us