按日期范围对数据进行分组,并以表格形式显示查询结果

时间:2012-12-12 04:44:14

标签: php html mysql

我正在尝试在单个截止日期之前汇总付款历史记录,并创建一个类似于下方显示的html表格。

+--------------+---------------+----------------+
| Date Due     | Amount Paid   |   Date Paid    |
+--------------+---------------+----------------+
| Nov, 1 2012  |           $10 |   Oct, 21 2012 |
|              |           $15 |   Oct, 18 2012 |
| Oct, 14 2012 |           $20 |   Oct, 13 2012 |
|              |           $20 |   Sep,  3 2012 |
+--------------+---------------+----------------+

我面临的问题是:

到期日,付款金额和付款日期数据字段都在同一个表格行中。到期日不一定与实际付款时间相对应(可能是延迟付款3周)。或者......也许在一个付款日期到期的时间范围内收到了两笔付款。

如何有效地解决此类问题并将其显示在表格中?我已经尝试了几种方法,而且代码过于密集系统。

编辑:数据库表格中的行目前看起来像这样:

+--------------+---------------+----------------+
| Date Due     | Amount Paid   |   Date Paid    |
+--------------+---------------+----------------+
| Nov, 29 2012 |           $10 |   Oct, 21 2012 |
| Nov, 15 2012 |           $15 |   Oct, 18 2012 |
| Nov,  1 2012 |           $20 |   Oct, 13 2012 |
| Oct, 14 2012 |           $20 |   Sep,  3 2012 |
+--------------+---------------+----------------+

但客户必须在每个截止日期支付50美元。在这种情况下,由于数据在表格中的格式化方式,客户将其付款分开并且不适用于当前到期日。

不幸的是,我无法更改数据库中的任何内容。

2 个答案:

答案 0 :(得分:1)

查询将是

 select * from table_name order by Date_Due ASC,Date_Paid ASC , Amount_Paid ASC

此查询首先按Date_Due按升序排序,然后按Date_PaidAmount_Paid排序。

答案 1 :(得分:0)

假设您的查询位于单个平面表上,听起来您只想让每个截止日期只显示一次(而不是每行)。

如果这是正确的,我认为你应该只是在构建你的表的PHP代码中解决问题,而不是试图在你的mysql结果中实现这个。