【发布时间】:2016-09-13 02:22:45
【问题描述】:
我不想在这里问一个问题,因为我知道它已经完成(稍微),但是由于字段格式,我的问题略有不同。我在连接和小时选择等方面尝试了很多东西,但我被卡住了。想要一个快速的手。
我有一个这样的 MySQL 表:
CREATE TABLE `VAT` (
`VATid` int(11) NOT NULL AUTO_INCREMENT,
`VATDate` date DEFAULT NULL,
`VATTime` varchar(10) DEFAULT NULL,
`VATPledgeAmount` float DEFAULT NULL,
PRIMARY KEY (`VATid`),
UNIQUE KEY `VATid_UNIQUE` (`VATid`)
) ENGINE=MyISAM AUTO_INCREMENT=6531 DEFAULT CHARSET=latin1;
问题在于 VATDate 字段的日期格式为 YYYY-MM-DD,而 VATTime 字段是带有前导零的 HHMM,如下表中的一些示例数据所示。
样本表数据:
VATid | VATDate | VATTime | VATPledgeAmount |
--------------------------------------------------
1 | 2016-06-30 | 0730 | 100 |
2 | 2016-06-30 | 0733 | 20 |
3 | 2016-06-30 | 0840 | 70 |
4 | 2016-06-30 | 0943 | 100 |
5 | 2016-06-30 | 0730 | 50 |
6 | 2016-07-01 | 2113 | 50 |
7 | 2016-07-01 | 2302 | 300 |
8 | 2016-07-02 | 0416 | 10 |
9 | 2016-07-02 | 0417 | 10 |
10 | 2016-07-02 | 0418 | 10 |
我想要做的是让 MySQL 服务器为我进行计算,这样当数据出来时,日期仍然会显示出来,但是每个小时的 PledgeAmount 的总值会被汇总和分组。
Counts | g_VATDate | g_VATTime | Total_VATPledgeAmount |
--------------------------------------------------
2 | 2016-06-30 | 0700 | 120 |
1 | 2016-06-30 | 0800 | 70 |
1 | 2016-06-30 | 0900 | 100 |
1 | 2016-07-01 | 2100 | 50 |
1 | 2016-07-01 | 2300 | 300 |
3 | 2016-07-02 | 0400 | 30 |
我希望这是有道理的。我打算将其用于 JS 图表,但由于我不需要或不想要个人承诺及其金额值,我只需要每小时的金额和总数。
【问题讨论】:
-
你如何计算
VATPledgeAmount? -
它实际上是一个美元值,所以在我的最后一个等式中,我想要它们所属小时的这些值的总和..
-
下次,记得将日期和时间存储为单个实体。并将钱存储为十进制!
-
感谢您的提示! :)