【问题标题】:Ms ACCESS and queries: dates in graph not in order访问女士和查询:图表中的日期不按顺序
【发布时间】:2016-07-06 22:25:53
【问题描述】:

我在 ACCESS 女士中使用查询来创建图表(显示在表格中)来表示供应商的每月支出数据。我希望 x 轴按时间顺序排列月份,这就是我遇到问题的地方。

上图显示x轴从2016年4月开始,虽然最早的日期是2015年8月。

创建图表的查询代码如下:

SELECT (Format([DateStamp],"mmm"" '""yy")) AS Expr1, Sum([Item  Master].SpendPerMaterial) AS Expr2
FROM [Item Master]
WHERE ((([Item Master].SupplierName)=[Forms]![Supplier History]![List0]))
GROUP BY (Format([DateStamp],"mmm"" '""yy")),   (Year([DateStamp])*12+Month([DateStamp])-1);

[Item Master] 是从中检索所有数据的表。 DateStamp 指的是带有月份的列,SpendPerMaterial 是该月某种材料的支出(这是聚合的,因为我们看的是供应商级别,而不是材料级别),List0 是一个列表,用户可以从中选择供应商供应商名单。

【问题讨论】:

  • 您的 GROUP BY 子句中已经有一个排序表达式:(Year([DateStamp])*12+Month([DateStamp])-1)。如果你把它作为 first GROUP BY 表达式(只是交换两个),它应该正确排序。我想。
  • @Andre,我试过了,它给了我与图片相同的图表。

标签: sql ms-access


【解决方案1】:

除非您包含明确的order by,否则您不应依赖查询结果的顺序。在您的情况下,结果按字母顺序按列排序(因为group by)。

您可以通过添加以下内容来解决此问题:

order by max([DateStamp])

到查询。

【讨论】:

  • 解决了这个问题。谢谢你的解释。
  • Access 没有弄清楚这一点的原因是因为传入的“日期”实际上是字符串 (Format([DateStamp],"mmm"" '""yy"))?如果 DateStamp 直接传递到图表中,并且图表将 x 轴上的日期格式化为 mmm 'yy,那么订单是否不再需要?
【解决方案2】:

我会将以下内容添加到您的查询中,在您的 GROUP BY 子句之后:

ORDER BY [datestamp] ASC;

【讨论】:

    猜你喜欢
    • 2013-10-05
    • 2017-01-26
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    相关资源
    最近更新 更多