|
1
3
是的,有可能。
下面是一个普通的例子
(至少我不知道怎么做) |
|
|
2
1
如果在PIVOT子句中排除了IN列表,则转换查询将自动为创建列 每个轴值 从SELECT语句生成。可以通过使用“硬编码”(即文字)值指定IN表达式来过滤最后的列。这当然是从其他答案知道的。 通过限制SELECT查询中的数据以开始。。。 转换需要过滤它。这样,就不仅限于预定义的文字值,而且联接、子查询和/或VBA函数的组合也可以对数据进行预过滤,从而有效地选择在转换表中显示哪些列。请注意,HAVING子句在转换查询中是不允许的,但是它可以在转换选择的另一个查询中使用,因此在转换之前如何准备数据实际上没有限制。
在WHERE子句中使用IN运算符:
但与PIVOT…IN子句不同,列表也可以是另一个查询:
使用标准模块中定义的VBA函数:
(iDevlop已经在一篇评论中提出了这个解决方案,但我不认为它被理解,需要好的例子。) |
|
|
3
1
变换中的保证列包含
第一个查询应用选择条件并进行初始分组。如果与我的另一个答案相比,这与原始的转换查询本质上是相同的——只是没有转换和透视。保存并命名此查询 :
接下来,创建一个查询,该查询对所有所需的行值进行分组。在本例中,我选择只包含初始选择条件中的相同值。^^通过基于未筛选的表或其他查询,这组值也可以与以前的选择条件分离。保存并命名此查询 [2行标题] :
创建行标题和包含列标题的辅助表[PivotValues]的交叉联接。交叉联接从两个表的每个组合中创建行——在Access SQL中,它是通过排除所有联接关键字来实现的。保存并命名此查询 [3交叉连接] :
最后,转换:通过使用左连接,这将包括交叉连接查询中存在的所有列和行。 值为Null。 尽管我们已经对初始查询进行了分组,但是转换仍然要求我们重新分组——也许有点多余,但对最终交叉表结果的控制并不是什么大不了的事。
|
|
|
4
0
为什么不在表中添加这些标题并在xtab查询中联接该表呢?
|
|
5
-2
正如您所说,您使用的是Access,那么(我突然想到)是的,在查询中使用VBA函数是可能的。
|