交叉表查询仅显示前4周

时间:2018-03-19 09:40:11

标签: ms-access access-vba ms-access-2010

我愿意改变我开始布置数据的方式。

我需要什么: 我需要每周显示个人表现列表。为此,我创建了一个交叉表查询,每列显示为日期(使用查询向导构建)。

查询实际上运行正常,虽然我只想显示4列(相当于4周的数据),但我真的不知道从哪里开始让我怀疑我是否已经使用交叉表进行了正确的接近

因为没有条件,它显示全年几乎超过50列

当前代码:

TRANSFORM Max(tbl_Genesys_Weekly.[Field32]) AS MaxOfField32
SELECT [_tbl_Structure].[User Name]
FROM _tbl_Structure INNER JOIN tbl_Genesys_Weekly ON [_tbl_Structure].[User ID] = tbl_Genesys_Weekly.Field5
GROUP BY [_tbl_Structure].[User Name]
ORDER BY tbl_Genesys_Weekly.WC_Date
PIVOT tbl_Genesys_Weekly.WC_Date;

非常感谢任何帮助

更新后的代码:

TRANSFORM Max(Format([Field32]/100,"Percent")) AS Calc
SELECT [_tbl_Structure].CSM, [_tbl_Structure].[User Name]
FROM _tbl_Structure INNER JOIN tbl_Genesys_Weekly ON [_tbl_Structure].[User ID] = tbl_Genesys_Weekly.Field5
GROUP BY [_tbl_Structure].CSM, [_tbl_Structure].[User Name]
ORDER BY tbl_Genesys_Weekly.WC_Date DESC 
PIVOT DatePart("ww", tbl_Genesys_Weekly.WC_Date)
WHERE DateDiff("ww", tbl_Genesys_Weekly.WC_Date, Date()) Between 5 and 1;

收到错误: SQL语句结束后找到的字符

1 个答案:

答案 0 :(得分:1)

您可以使用:

PIVOT DatePart("ww", tbl_Genesys_Weekly.WC_Date);

并包含where子句:

WHERE DateDiff("ww", tbl_Genesys_Weekly.WC_Date, Date()) Between 5 and 1

请注意,如果您使用标准的ISO 8601周数,则无法使用DatePart,并且必须包含年份以获得新年周围的正确排序。