gpt4 book ai didi

date - 使用日期时 MS Access Group By 中断

转载 作者:行者123 更新时间:2023-12-04 05:06:09 24 4
gpt4 key购买 nike

出于某种原因,在 Access 2010 中使用 Group By 的选择查询中使用日期/时间字段会中断(记录没有正确地首先“按”文本字段“分组”,多次显示相同的“aTextField”值)。我能够在一个简单的单表查询中复制这个问题。例如:

SELECT aTextField, SUM(aIntField) AS SumOfaIntField
FROM simpleTable
GROUP BY aTextField, aDateField
HAVING aDateField >= Date()
ORDER BY aTextField;

一旦您从查询中删除“aDateField”(分组依据和具有行),它就会正常工作。我什至可以删除 HAVING 行,但它仍然会中断。让我相信这是 Group By 的事情。

任何反馈都会很棒。谢谢!

编辑 更多详情
**simpleTable**
--------------------------------------------
| ID | aTextField | aIntField | aDateField |
============================================
| 1 | John Doe | 1 | 3/14/2013 |
| 2 | John Doe | | 3/15/2013 |
| 3 | Jane Doe | 1 | 3/15/2013 |
| 4 | John Doe | 2 | 3/18/2013 |
| 5 | Jane Doe | 1 | 3/19/2013 |
| 6 | John Doe | | 3/20/2013 |
| 7 | John Doe | 3 | 3/21/2013 |
| 8 | Jane Doe | 1 | 3/19/2013 |
| 9 | John Doe | | 3/22/2013 |
| 10 | Jane Doe | 2 | 3/20/2013 |
| 11 | Jane Doe | | 3/21/2013 |
| 12 | Jane Doe | | 3/22/2013 |
--------------------------------------------

**Expected Result**
-------------------------------
| aTextField | SumOfaIntField |
===============================
| Jane Doe | 4 |
| John Doe | 3 |
-------------------------------

**Actual Result**
-------------------------------
| aTextField | SumOfaIntField |
===============================
| Jane Doe | 2 |
| Jane Doe | 2 |
| Jane Doe | |
| Jane Doe | |
| John Doe | |
| John Doe | 3 |
| John Doe | |
-------------------------------

所以似乎正在发生的是每个日期也有一个单独的行。我只需要按日期过滤,而不必按它分组。但是,Access 将不接受不分组的查询。选项?

最佳答案

您正在按 aTextField 分组和 aDateField .也许simpleTable包括日期相同但时间不同的行。在这种情况下,您的分组将为每个日期/时间组合生成一行。

无论这是否是解释,您都应该通过包含 aDateField 来检查数据库引擎实际评估的内容。在 SELECT list 。

SELECT aTextField, aDateField, SUM(aIntField) 
FROM simpleTable
GROUP BY aTextField, aDateField
HAVING aDateField >= Date()
ORDER BY aTextField;

还可以考虑使用 WHERE而不是 HAVING条款:

WHERE aDateField >= Date()

根据您的样本数据,我怀疑您想要...

SELECT aTextField, SUM(aIntField) 
FROM simpleTable
GROUP BY aTextField
WHERE aDateField >= Date()
ORDER BY aTextField;

关于date - 使用日期时 MS Access Group By 中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15505516/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com