我一直在思考自己的问题,并在这里和互联网上进行了研究。我似乎没有更进一步...
我有一个包含不同表的数据库。其中之一就像一个客户表。每个客户每个月都必须发送表格(最多3张),这在第二张表中。
它看起来像这样:
**tblReportedFiles**
ID Month Form
1 201803 1
2 201803 1
1 201803 2
2 201804 2
3 201804 3
1 201804 1
我的目标是创建将使用以下数据集创建新表的代码:
clientID - ReportingMonth - Form 1 - Form 2 - Form 3
1 201803 true true false
2 201803 true false false
3 201803 false false false
1 201804 true false false
2 201804 false true false
3 201804 false false true
我什么都做不了。我玩过SQL和VBA,但是没有正确的方向。
您有什么想法吗?
答案 0 :(得分:2)
您可以使用交叉表(枢轴)查询来实现此目的。这比Jaime建议的解决方案更加灵活,因为当新表格添加到表中时,它将自动创建列。
TRANSFORM CBool(Count([Form]))
SELECT ID, [Month]
FROM tblReportedFiles
GROUP BY ID, [Month]
PIVOT "Form " & [Form]
我们都在将Form
转换为转换为布尔值的计数,并以Form
进行透视。这意味着,如果特定的Form
值出现在分组变量中,则计数将为1,并将其强制转换为布尔值True
,否则,计数将为0,强制转换到布尔False
。