首页 > 解决方案 > 如何制作月度报告

问题描述

我正在使用一个可以记录燃料费用的系统项目,来自两个不同表的名为 amount 的属性已经组合在一起,并且列中的总和值已经使用 javascript 编码,但是我需要编写一个函数但我不知道怎么做,这个功能正在显示一个mothly报告,如果我点击一月份,我想显示一月份存储的所有值。

这就是我的 html 表单的构造方式:(这是我希望在按下按钮时出现模式的地方,然后给我一个从 1 月到 2 月的选择)

<div class="panel-body">
    <h3 align="center">Withdrawal Per Vehicle</h3>
    <p id="demo"></p>
    <table id="expense_table"class="table table-striped table-bordered">
                                <thead>
                                    <tr>
                                        <th>ID</th>
                                        <th>Plate Number</th>
                                        <th>Amount</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    <?php foreach($Withdraw as $w): ?>
                                        <?= '<tr>' ?>
                                            <?= '<td class="rowDataSd">' . $w["carid"] . '</td>' ?>
                                            <?= '<td class="rowDataSd">' . $w["reg_num"] . '</td>' ?>
                                            <?= '<td class="rowDataSd">' . $w["amount"] . '</td>' ?>
                                        <?= '</tr>' ?>
                                    <?php endforeach; ?>
                                </tbody>
                            </table>
                            <span id="val"></span>
                        </div>

这是 SQL 语句如何对来自不同表的所有值求和:

$Withdraw = query("SELECT tbl_vehicle.carid,
                                  tbl_vehicle.reg_num,
                                    IFNULL(tbl_fuel.sum_amount,0) + 
                                    IFNULL(tbl_maintenance.sum_amount,0)
                            AS amount
                            FROM tbl_vehicle tbl_vehicle
                            LEFT JOIN
                            (SELECT carid,
                                      sum(trim(replace(amount, '$', ''))+0) sum_amount
                            FROM tbl_fuel
                            GROUP BY carid) tbl_fuel ON tbl_fuel.carid = tbl_vehicle.carid
                            LEFT JOIN
                            (SELECT carid,
                                      sum(trim(replace(amount, '$', ''))+0) sum_amount
                            FROM tbl_maintenance
                            GROUP BY carid) tbl_maintenance ON tbl_maintenance.carid = tbl_vehicle.carid
                            WHERE tbl_fuel.sum_amount IS NOT NULL OR tbl_maintenance.sum_amount IS NOT NULL");

这是脚本如何构造以获取列中的总值:

<script type="text/javascript">
var table = document.getElementById("expense_table"), sumVal=0;
for(var i=1;i<table.rows.length;i++){
    sumVal=sumVal+ parseFloat(table.rows[i].cells[2].innerHTML);
}
console.log(sumVal);
document.getElementById("val").innerHTML="Total Expenses: " + sumVal;

这就是我在名为 tbl_fuel 的数据库表中插入值的方式。

$result = $_POST["employee"];
            $result_explode=explode('|', $result);  
            $result = query("INSERT INTO tbl_fuel 
                (employee_id,
                carid,
                account_id,
                trip_date,
                invoice,
                up_date,
                previous,
                present,
                liter,
                amount,
                purpose,
                code,
                attachment,
                dateAdded) 
                VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)",
                $result_explode[1],
                $_POST["platenumber"],
                $_POST["account_id"],
                $_POST["trip_date"], 
                $_POST["invoice"], 
                $_POST["up_date"], 
                $_POST["previous"], 
                $_POST["present"], 
                $_POST["liter"],  
                $_POST["amount"], 
                $_POST["purpose"],
                $_POST["code"],
                $target_file, 
                date("Y-m-d"));

这是第二个 SQL(我的数据库中的 tbl_maintenance)

$result = $_POST["employee"];
            $result_explode=explode('|', $result);
            $result = query("INSERT INTO tbl_maintenance 
                (employee_id,
                carid,
                account_id,
                main_date,
                invoice,
                up_date,
                previous,
                present,
                particular,
                code,
                amount,
                purpose) 
                VALUES (?,?,?,?,?,?,?,?,?,?,?,?)", 
                $result_explode[1],  
                $_POST["platenumber"], 
                $_POST["account_id"], 
                $_POST["main_date"], 
                $_POST["invoice"], 
                $_POST["up_date"], 
                $_POST["previous"], 
                $_POST["present"], 
                $_POST["particular"], 
                $_POST["code"], 
                $_POST["amount"], 
                $_POST["purpose"]);

如果您注意到,两个表都具有相同的属性,即 carid 和 amount,我希望它们的值每月显示。这些表的值已经使用上面的第一个 SQL 状态组合在一起。

标签: javascripthtmlsql

解决方案


推荐阅读