具有多个总和的Sqlite子查询

时间:2015-04-24 18:18:12

标签: sql sqlite

我有一个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'

1 个答案:

答案 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'