Access SQL:按自定义案例排序,按月透视
Posted
技术标签:
【中文标题】Access SQL:按自定义案例排序,按月透视【英文标题】:Access SQL: order by customized cases and pivot by month 【发布时间】:2014-04-02 20:33:09 【问题描述】:我在 Access 中编写了一个交叉表“A”,它从另一个表“B”中选择 2 个文本列和 2 个数字列、月份和帖子。
一段代码是这样的……
Select B.xx...
From B
Group by B.xx...
Pivot B.Month;
...如果月份属于同一年,则效果很好,但是由于月份是滚动的,因此当年份结转时,例如月份是 October, November, December, January, February,顺序保持为 B.Month ASC 01, 02, 10, 11, 12 我希望它按顺序旋转喜欢 10 11 12 01 02
更新:我解决了主要问题,但现在我想 1. 将订单更改为 10/2013 至 3/2014 2. 将标题改为 10 到 3
TOPIC SUB-TOPIC 1/2014 10/2013 11/2013 12/2013 2/2014 3/2014
language english 86 88 90 82 88 90
language french 70 77 75 79 82 80
mathematics geometry xx xx xx xx xx xx
mathematics calculus xx xx xx xx xx xx
【问题讨论】:
不是说它会解决问题,但 Access 不支持case/when
语法
为什么年份和月份在两列中?是以前的一列吗?
@Brad A 和 B 中只有月份列,我尝试通过传入来添加年份,但这不起作用,因为枢轴只在月份有效
但是你如何得到一年的月份?是否有一列具有正确的 date/time
数据类型?
@Brad 是的,在另一个表中,比如 D,其中包含所有原始数据。我已经提取了月份(date_column)用于最终表A。我试图提取年份(date_column)但最后枢轴只能旋转一列......
【参考方案1】:
创建一个同时包含年份和月份的表达式,并在数据透视表中使用它。
类似Pivot (year & format(month,"00"))
或者,如果您在某个字段中有完整的日期,例如`Pivot Format (Date,"yyyy/mm/dd")
提醒一下,Year、Date 和 Month 可能是保留字,您可能需要不同的字段名称 - 不确定,但可能
【讨论】:
这是一个很好的建议,但如果我同时调整年份和月份,那么该列的列名会显示什么? “Pivot (year & format(month, '00") As Monthnum 工作吗?不,我只有从一般数据中提取的月份部分,因为这是唯一需要的。是的,保留月份和年份。跨度> 我认为你的建议应该可行 - As Monthnum 不应该改变任何东西。至于你会得到什么 - 列应该看起来像 201309 .. 201310 .. 201311 .. 201312 .. 201401 .. 201402 等等 - 试试看你得到什么,并应用你喜欢的任何格式首先是年份,然后是月份。以上是关于Access SQL:按自定义案例排序,按月透视的主要内容,如果未能解决你的问题,请参考以下文章