有没有人阅读过关于使用 TRANSFORM 语句创建交叉表查询的 MSDN 页面?
http://msdn.microsoft.com/en-us/library/office/bb208956(v=office.12).aspx
它包括以下断言,代码示例不支持:
您还可以包含不存在数据的固定值以创建其他列。
是的,我想从预先存在的列表中创建一个带有一组固定有序列标题的数据透视表。这是一个简化的 SQL 查询:
将 SUM(tblData.Losses) 转换为 TotalLosses 选择 tblData.LossType 来自 tblData 按 tblData.Region 分组 PIVOT tblData. 年;
我想添加不在表中的区域名称,并且我希望这些区域以特定顺序出现。是的,我可以创建一个区域列表表并将其左连接:但这也不会强加任意顺序 - 交叉表查询始终按字母顺序从左到右对列进行排序。
而且我可能只想添加不存在数据的任意固定值。
这是 MSDN 的信息:
句法
TRANSFORM aggfunction selectstatement PIVOT pivotfield [IN ( value1 [, value2 [, ...]])]
TRANSFORM 语句包含以下部分:
- aggfunction:对选定数据进行操作的 SQL 聚合函数。
- selectstatement:一个 SELECT 语句。
- pivotfield:要用于在查询结果集中创建列标题的字段或表达式。
- value1 , value2:用于创建列标题的固定值。
...剩下的只是从教科书数据创建一个普通的数据透视表。
所以,我的问题是:
有没有人真正使用过固定值来创建列标题?
您的 SQL 示例会很有用。
这是关于 Microsoft Access SQL 的已发布语法的问题。
感谢您没有问我为什么要这样做,而是给出了回答问题的冗长 SQL 示例“是否有 ANSI SQL 可以通过硬编码所有内容来完成 TRANSFORM 语句的功能?” 或指出这在大型机上的 Postgres 中会更容易。