我目前正在使用nodejs构建一个表单,该表单根据重量和包裹类型的输入检索收入。
表单中的用户可以选择重量和类型(两者都是下拉列表,选项选择(,并将被引导到显示收入的下一页。但是,用户可以添加行(最多5次(,因此可以有5种不同的重量和5种不同类型的地块。使用HTML和Javascript,我创建了一个表,在单击"时添加新行;添加新的";。
我目前可以根据单行条目检索收入。我无法根据更多的行(最多5行(检索收入。如果有一行以上,则必须将收入汇总在一起。
这是我的代码:
从MySQL检索信息后,以下是我当前的代码:
var getsql2 =`SELECT Revenue FROM revenuecard where weight = '${weight}' and type = '${parceltype}';
con1.query(getsql2, function (err, data, fields) {
if (err) throw err;
console.log(data);
var revenue = JSON.stringify(revenue);
//trim the revenue and remove the brackets
revenue = parseFloat(revenue);
//data returns the output of the revenue
在HTML中显示价格
<label style="text-align:right; padding-right:25px;" id="revenue" class="revenue"> <%= revenue %> </label>
我能够根据1的重量和类型检索和显示收入。但是,当我添加新行并具有另一行的权重和类型时,我无法检索数据。我想把这两项收入加起来。例如,如果有3行,则根据为每行选择的不同权重和类型,从第一行计算的收入将与第二行和第三行相加。有办法解决这个问题吗?
您的SQL查询应该如下所示:
SELECT
SUM(Revenue)
FROM
revenuecard
WHERE
weight IN (w1,w2,w3 ...)
AND type IN (t1, t2, t3, ....)
w_n
和t_n
来自您的表
您应该尝试以下查询:
SELECT
*, (SELECT SUM(Revenue) FROM revenuecard WHERE id = rc.id) as total
FROM
revenuecard as rc
WHERE weight IN (w1,w2,w3)
AND type IN (t1, t2, t3)