如何从MySQL中检索多个数据,并根据相同的字段和不同的输入将它们相加,最多添加5行?(NodeJS)



我目前正在使用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_nt_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)

最新更新