Pytanie : Dlaczego móc I Fikcyjny rząd w rezultat set?

The następujący zapytanie robić obliczenie rząd grupować Data i Sprzedaż osoba.  I potrzebować wszystkie the data sprzedaż osoba bez rząd obliczenie zero. Być tam  sposób być w the zapytanie być?


1:
2:
3:
4:
5:
SELECT s.eventStartDate, s.salesPersonID, Obliczenie (s.salesEventID) JAKO CountEvent
OD smd_salesEvent s
DOKĄD (((s.saleTypeID) =1) I ((s.storeID) <>0) I ((s.saleEventStatus) <> " Discontinue "))
GRUPA S.eventStartDate, s.salesPersonID
MIEĆ (((s.eventStartDate) Między #7/4/2010# I #7/10/2010#));

Odpowiedź : Dlaczego móc I Fikcyjny rząd w rezultat set?

Cyberkiwi jeden krok dalszy ty móc the następujący.  DOKĄD Richard wybierać ODRĘBNY Data, zaludniać kombinacja, the następujący wracać cartesian łączyć data/ludzie (subtelny różnica).

WYBIERAĆ eDatePeople.eventStartDate, eDatePeople.SalesPersonID, Obliczenie (S3.SalesEventID) jako CountEvent
OD (
WYBRANY eDates.EventStartDate, ePeople.SalesPersonID
OD
(WYBRANY ODRĘBNY S1.eventStartDate OD smd_salesEvent S1
DOKĄD S1.EventStartDate MIĘDZY #7/4/2010# i #7/10/2010#
I S1.SaleTypeID = (1) I S1.StoreID <> (0) I S1.SaleEventStatus <> "Discontinue") jako eDates,
(WYBRANY ODRĘBNY S2.salesPersonID OD smd_salesEvent S2
DOKĄD S2.EventStartDate MIĘDZY #7/4/2010# i #7/10/2010#
I S2.SaleTypeID = (1) I S2.StoreID <> (0) I S2.SaleEventStatus <> "Discontinue") jako ePeople
) jako eDatePeople
LEWICA ŁĄCZYĆ smd_salesEvent S3
NA eDatePeople.eventStartDate = S3.eventStartDate
I eDatePeople.SalesPersonID = S3.SalesPersonID
GRUPA EDatePeople.eventStartDate, eDatePeople.SalesPersonID

Wybierać mieć dwa subqueries który wybierać the odrębny data (eDates) i the odrębny ludzie (ePeople) który korespondować the kryterium ty wybierać.  Ono wtedy wcielać w cartesian łączyć (eDatePeople) który dawać ty każdy kombinacja każdy daktylowy/osoba dla tamte kryterium.  W końcu ono łączyć eDatePeople z powrotem smd_SalesEvent the obliczenie SalesEventID dla smd_SalesEvent daktylowy/osoba kombinacja.

Wartość ono robić być że ty mieć mieć the data che zdarzać się między twój początek i data końca, ponieważ the inny kryterium móc inny rejestr, lub niektóre podzbiór wartość.  Ono także tylko wracać rejestr dla tamte sprzedaż ludzie który mieć przynajmniej jeden rejestr che spotykać twój kryterium.  Jeżeli osoba być na wakacje lub uczestniczyć w jakaś sprzedaż wydarzenie podczas the okres precyzować, ich imię pokazywać ich wcale.

Jeżeli ty polubić że wszystkie data podczas czas piędź wracać, ty móc stół data z the eDates porcja the zapytanie zamiast the subquery I używać.
Inne rozwiązania  
 
programming4us programming4us