我有一个交易数据库(Access 2007),以每小时、每天和每月的时间间隔记录。我想以一种有意义的方式查看它们(而不是按小时计算能源使用量,这是它的存储方式,我想要 2011 年 1 月的所有使用量)。我要操作的表具有以下通用格式:
CustID|CustomerCode|TransactionDate|(Transaction Hour depending on table)|Usage
Run Code Online (Sandbox Code Playgroud)
所以如果我想拿一张这样的桌子并制作一个看起来像这样的视图
BillingPeriod|Usage(mWh)
1/2011 |500
2/2011 |600
3/2011 |700
etc
Run Code Online (Sandbox Code Playgroud)
我该怎么做?交易日期可以是任意日期,交易时间可以是1-24。查询本身似乎并不难,大致如下:
SELECT TransactionDate, SUM(Usage)
FROM UsageTable
Where (TransactionDate Between [Some Start Date] AND[Some End Date])
GROUP BY TransactionDate;
Run Code Online (Sandbox Code Playgroud)
问题是格式化。我显然不能按交易日期分组以获得我想要的结果,我只是写了它,所以查询在语义上是正确的。也许我可以做类似的事情
SELECT Mid(TransactionDate,0,2) + Mid(TransactionDate, 6, 4)?
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激
似乎您需要按月份和年份进行分组。否则,您将合并 2010 年 1 月和 2011 年 1 月:
SELECT YEAR(TransactionDate), MONTH(TransactionDate), SUM(Usage)
FROM YourTable
WHERE (TransactionDate Between [Some Start Date] AND[Some End Date])
GROUP BY YEAR(TransactionDate), MONTH(TransactionDate)
ORDER BY YEAR(Created), MONTH(Created)
Run Code Online (Sandbox Code Playgroud)
我不知道你的 SQL 版本是否有 MONTH 和 YEAR 函数,所以你可能必须使用 DATEPART。
| 归档时间: |
|
| 查看次数: |
33609 次 |
| 最近记录: |