2017-04-10 105 views
0

我有这样的MS Access数据:SQL SUM和COUNT多个列

+------------+-----------+ 
| DateStart | PATIssued | 
+------------+-----------+ 
| 12/12/2004 | Yes  | 
+------------+-----------+ 
| 13/12/2004 | No  | 
+------------+-----------+ 
| 14/12/2004 | No  | 
+------------+-----------+ 
| 12/12/2004 | No  | 
+------------+-----------+ 
| 12/12/2004 | Yes  | 
+------------+-----------+ 
| 14/12/2004 | No  | 
+------------+-----------+ 
| 13/12/2004 | Yes  | 

我想星期几来算,每天记录,在过去的一周号码,并在另一列数记录,其中PATIssued =是

那么结果会是什么样子:

Date  DayCount PATCount 
Monday  3  2 
Tuesday  2  1 
Wednesday  2  0 

我已经尽可能

得到

的问题是,这将返回

Date  PATIssuedYN DayCount PATCount 
Monday  No   1   
Monday  Yes   2  2 
Tuesday  No   1 
Tuesday  Yes   1  1 
Wednesday  No   2   
Wednesday  Yes   0  0 

,其中星期一为12/12,周二周三13/12 14/12是

+0

删除'从你的选择和组PATIssuedYN'由 – JamieD77

+0

使用条件,即PATIssuedYN =是 –

+1

@Евг нийКондратенко会扭曲'DayCount'值 – JamieD77

回答

1

,因为你不希望返回列PatIssuedYN,将其删除从你的选择和你的小组是:

SELECT Format(DateValue(DateStart),"dddd") AS DayOFWeek, 
Count(Table1.DateStart) AS DayCount, 
Sum(IIf([PATIssuedYN]="Yes",1,)) 
FROM Table1 
WHERE (((Table1.DateStart) Between DateAdd("d",-7,Now()) And Now())) 
GROUP BY DateValue(DateStart);