我有一个sqlite数据库,我需要在我的sql中执行一些算术来获得最终数量。问题是我不确定如何实现这一目标,我非常肯定我已经阅读了一个子查询,我需要按行ID分组(我的数据库中的唯一ID)
我想在下面的计算中包含的字段是
el.material_cost1 * el.material_qty1
el.material_cost2 * el.material_qty2
el.material_cost3 * el.material_qty3
我目前的查询如下。除了上面缺少的字段之外,它还返回我的成本值。由于我单独存储了材料成本,因此我无法确定如何在查询中执行子查询以获得所需的结果。
SELECT sum(el.enquiry_cost1) + sum(el.enquiry_cost2) + sum(el.enquiry_cost3)
FROM estimate e
LEFT JOIN estimate_line el
ON e.estimateID=el.estimateID
WHERE e.projectID=7 AND el.optional='false'
答案 0 :(得分:1)
使用LEFT JOIN
代替[INNER] JOIN
毫无意义,因为您的WHERE
条件会过滤掉任何可能不同的行。
我认为你正在努力实现这一目标。特别是,您的描述中没有任何内容让我认为您需要子查询。相反,看起来这个查询将接近您所追求的内容:
SELECT
sum(el.enquiry_cost1)
+ sum(el.enquiry_cost2)
+ sum(el.enquiry_cost3)
+ sum(el.material_cost1 * el.material_qty1)
+ sum(el.material_cost2 * el.material_qty2)
+ sum(el.material_cost3 * el.material_qty3)
AS total_costs,
FROM
estimate e
JOIN estimate_line el
ON e.estimateID = el.estimateID
WHERE e.projectID = 7 AND el.optional = 'false'