Sql Access交叉表查询中缺少运算符语法错误

Sql Access交叉表查询中缺少运算符语法错误,sql,ms-access,Sql,Ms Access,我很难找出我的查询缺少什么: PARAMETERS StartDate DateTime; SELECT Count(GRANTS.[Grant Identified]) AS [CountOfGrant Identified] FROM GRANTS WHERE GRANTS.[Grant Identified]=Yes AND (GRANTS.[Identified Date] >= StartDate) PIVOT ((Year(GRANTS.[Identified Date])*1

我很难找出我的查询缺少什么:

PARAMETERS StartDate DateTime;
SELECT Count(GRANTS.[Grant Identified]) AS [CountOfGrant Identified]
FROM GRANTS
WHERE GRANTS.[Grant Identified]=Yes AND (GRANTS.[Identified Date] >= StartDate)
PIVOT ((Year(GRANTS.[Identified Date])*12 + Format(GRANTS.[Identified Date], "mm")) - (Year(StartDate)*12 + Format(StartDate, "mm")) + 1)
IN (1,2,3,4,5,6,7,8,9,10,11,12);
我的头脑已经麻木了,我已经浏览了所有我能找到的解决方案(这通常是一个
'!='
问题)


谢谢。

PIVOT子句告诉我们您正在尝试进行交叉表查询,但您没有TRANSFORM子句。Access SQL中交叉表查询的一般形式是

TRANSFORM AggregateFunction(ValueField) AS whatever
SELECT RowHeadingFields
FROM TableName
GROUP BY RowHeadingFields
PIVOT ColumnHeadingField [IN (ValueList)]
因此,您的查询需要看起来更像这样:

PARAMETERS StartDate DateTime;
TRANSFORM Count(GRANTS.[Grant Identified]) AS [CountOfGrant Identified]
SELECT GRANTS.[Grant Identified]
FROM GRANTS
WHERE GRANTS.[Grant Identified]=Yes AND (GRANTS.[Identified Date] >= StartDate)
GROUP BY GRANTS.[Grant Identified]
PIVOT ((Year(GRANTS.[Identified Date])*12 + Format(GRANTS.[Identified Date], "mm")) - (Year(StartDate)*12 + Format(StartDate, "mm")) + 1)
IN (1,2,3,4,5,6,7,8,9,10,11,12);

您是否遗漏了
Yes
中的引号,如
WHERE Grants.[Grant Identified]=“Yes”
?不,这些引号不是必需的。谢谢,我正在关注另一个网站作为指南,不认为该部分是必要的,因为我已经选择了已识别的计数。