按日期捆绑信息

时间:2014-05-26 08:09:23

标签: php mysql sql

我非常清楚如何做到这一点,但我不确定...... 如何这样做,如果这是有道理的。这仍然是我学习PHP的第一天(第二天没有睡觉),我试图在我称之为退出之前完成这个项目。实际上,在我可以退出并对自己感到满意之前,这就是剩下的一切。所以这就是事情。

我知道今天我已经提出了很多问题,希望这是最后一个问题。

目前我的代码从我的数据库中提取信息并将其显示在表格中,如下所示:

enter image description here

现在,这对于我想列出最近15笔交易的功能非常有用,这就是我的以下代码所做的事情,请原谅我第一天未能有效完成的任何事情。

<html>
    <table border="1">
        <tr>
            <th>Transaction Date</th>
            <th>Transaction Amount</th>
            <th>Item Name</th>
            <th>Quantity</th>
        </tr>

        <?php
            require_once 'Config.php';
            require_once 'Connection.php';

            $totalTransactions = 0;
            $totalProfit = 0;

            $testquery = "SELECT * FROM $tbl_name WHERE DATE($tbl_name.Date) 
            BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE()";

            $results = mysql_query($testquery) or die (mysql_error());

            while($row = mysql_fetch_array($results)) 
            {
                $totalTransactions += 1;
                $totalProfit += $row[$ROW_AMOUNT];

                echo "<tr>";
                echo "<td align='center'>".$row[$ROW_DATE] . "</td>";
                echo "<td align='center'>$". number_format($row[$ROW_AMOUNT], 2) . "</td>";
                echo "<td align='center'>null</td>";
                echo "<td align='center'>null</td>";
                echo "<tr>";
            }

            echo "<tr>";
            echo "<td align='center'><strong>SUM:</strong></td>";
            echo "<td align='center'><strong>$".number_format($totalProfit, 2)."</strong></td>";
            echo "<td align='center'><strong> </strong></td>";
            echo "<td align='center'><strong> </strong></td>";
            echo "<tr>";
        ?>
    </table>
</html>

现在,我试图找出如何在表格中将其分组 [日] - [总和]

我理解如何获取数据的总和,显然是因为上面的脚本为最近15次交易做了什么,但是如何将它们组合在一起呢?

我正在寻找的输出示例是这样的(这是在纯HTML中完成的,只是我尝试实现的一个例子

enter image description here

为了更有效地重新提出我的问题,我试图创建另一个表格,显示每个日期的总和,以及#34; Transactions&#34;对

1 个答案:

答案 0 :(得分:2)

您必须使用GROUP BY子句对列进行分组,然后汇总交易金额的总和:

SELECT Date, SUM([Transaction Amount])
FROM $tbl_name
WHERE DATE($tbl_name.Date) 
BETWEEN DATE_SUB(CURDATE(), INTERVAL 15 DAY) AND CURDATE()
GROUP BY Date

请注意,您可能需要在列名Transaction Amount周围加上引号或其他内容,这是TSQL语法,我不确定它是如何在MySQL中完成的。