0

我已经搜索了这个问题的答案,但似乎找不到任何可以在交叉表中进行唯一计数的东西。我能找到的最接近的是:select count(myField) from (select distinct myField from myTable),但我不断收到错误。

培训类型在列中,日期在行中(格式化为月份,以便我可以将季度或单个月份分开),理想情况下,我会将值作为由其种植者记录 ID 标识的唯一受训者的数量。它当前显示了多次参加相同培训的所有学员。

任何帮助将不胜感激!下面是SQL。谢谢你的时间!

SQL:

TRANSFORM Count([TDB - Master - Trainee Attendence].[Grower Record ID]) AS [CountOfGrower Record ID]
SELECT Format([Dat Fòmasyon],'mm/yy') AS Months, Count([TDB - Master - Trainee Attendence].[Grower Record ID]) AS [Total Of Grower Record ID]
FROM [TDB - Master - Trainee Attendence]
WHERE (((Format([Dat Fòmasyon],'mm/yy'))="01/13" Or (Format([Dat Fòmasyon],'mm/yy'))="02/13"))
GROUP BY Format([Dat Fòmasyon],'mm/yy')
PIVOT [TDB - Master - Trainee Attendence].[Tit Fòmasyon an];
4

1 回答 1

0

我建议您创建一个要报告的数据的查询(大概):

SELECT DISTINCT [Grower Record ID], [Dat Fomasyon], [Tit Fomasyon an]
FROM [TDB - Master - Trainee Attendance]

然后使用此查询作为数据源生成数据透视表。

现在我对访问的细微差别并不完全熟悉,并且不确定您可以从查询中生成数据透视表,但如果不是,我建议您更改您的代码(在表单的克隆中)做同样的事情,用 [aliased] 查询替换 from 子句(并删除对出现在其他子句中的基表的引用):

TRANSFORM Count([Grower Record ID] AS [CountOfGrower Record ID]
SELECT Format([Dat Fomasyon], 'mm/yy' AS Months, Count([Grower Record ID]) as [Total of Grower Record ID]
FROM (SELECT DISTINCT [Grower Record ID], [Dat Fomasyon], [Tit Fomasyon] 
      FROM [TDB - Master - Trainee Attendance]) Uniq
WHERE Format([Dat Fòmasyon],'mm/yy') = "01/13" Or Format([Dat Fòmasyon],'mm/yy' = "02/13"
GROUP BY Format([Dat Fòmasyon],'mm/yy')
PIVOT [Tit Fòmasyon an]

请注意,我在重写自生成以来已被编辑的逻辑时不禁思考,因为计数的名称(在“AS”之后的 [] 中)在转换和选择行中是不同的。我不希望这很重要,尽管在访问中你永远不知道。

希望这可以帮助...

如果这对您有帮助,请标记为答案。

于 2013-06-11T23:46:46.100 回答