2017-08-24 2 views
0

Ich habe einen Ausdruck erstellt und dann als Gruppe in einem Bericht verwendet. Manchmal erscheinen alle Tage einer Woche, manchmal nur fünf oder sechs Tage, in der Fußzeile dieser Gruppe.Zähle Tage der Woche, um fehlende Tage zu entdecken

Day   Appts 
Monday  10 
Tuesday  16 
Thursday  5 
Saturday  9 
Totals: 4 40 

Es ist einfach die Summe von appts (40) zu bekommen, aber ich brauche eine Anzahl von Tagen zu haben, die in diesem Fußbereich erscheinen, um es einfach zu erkennen, wenn die Tage fehlen.

+0

Vielleicht: Graf (*) – June7

Antwort

0

Sie könnten eine separate Tabelle, die die Namen von Wochentagen erstellen enthält, und eine Sortierreihenfolge (dh Montag = 1, Sonntag = 7) und erstellen Sie dann einen Join mit dieser Tabelle, um immer die Namen aller Tage und die Anzahl zurückzugeben.

Leider kann ich im Moment keine Screenshots hinzufügen (ich werde versuchen, diesen Abend hinzuzufügen, wenn ich nach Hause komme).

SELECT  tbl_WeekDays.DayName 
      , COUNT(WeekDay(ApptDate)) AS Appts 
FROM  tbl_WeekDays LEFT JOIN DateTable ON tbl_WeekDays.DayName=WEEKDAYNAME(WeekDay(DateTable.ApptDate)) 
GROUP BY tbl_WeekDays.DayName, tbl_WeekDays.SortOrder 
ORDER BY tbl_WeekDays.SortOrder 

Mit der tbl_WeekDays Tabelle auf der linken Seite der LEFT JOIN alle Datensätze aus der Tabelle zurückgegeben werden.

Ich habe auch jeden Feldnamen mit dem Tabellennamen vollständig qualifiziert, obwohl Sie dies nicht tun müssen, wenn der Name nicht mehrdeutig ist.

+0

Müsste ich nicht ein Feld haben, um es in meiner appt Tabelle anzuschließen? – 985ranch

+0

Sie würden es am Tag 'tbl_WeekDays.DayName = WEEKDAYNAME (WeekDay (DateTable.ApptDate))' –

+0

beitreten diese Tabelle und Join sollte der Select-Anweisung für die Datensatzquelle des Berichts hinzugefügt werden? Es wird eine wirklich lange Anfrage sein .... also einfach bestätigen. – 985ranch

0

Sie können sieben gestapelt Textboxen, eine für jeden Wochentag, mit diesen ControlSources:

=Abs(Sum(1=Weekday[ApptDate]))) 
=Abs(Sum(2=Weekday[ApptDate]))) 
... 
=Abs(Sum(7=Weekday[ApptDate])))