如何在mysql查询中总计“ AS”列?

时间:2018-07-05 11:48:32

标签: mysql inner-join

我需要AS列“利润”和“购买价格”的总和。我尝试了一些由stock.id等组成的小组,但没有给我相同的答案。请让我知道如何计算他们的费用。

SELECT
    jobc_consumble.Stock_id,
    jobc_consumble.issued_qty,
    jobc_consumble.total,
    p_purch_stock.Price,
    p_purch_stock.Price * jobc_consumble.issued_qty AS "purch_price",
    jobc_consumble.total -(SELECT   purch_price) AS "profit"

FROM
    jobc_consumble
INNER JOIN p_purch_stock ON jobc_consumble.stock_id = p_purch_stock.stock_id
WHERE
        DATE_FORMAT(
        jobc_consumble.issue_time,
        '%Y-%m-%d'
    ) BETWEEN '2018-07-03' AND '2018-07-03'

输出应如下所示: image

我想要最后两列的总和。

利润总和:1105

购买价格总和:11000

1 个答案:

答案 0 :(得分:0)

只需重复您的SELECT子句中的逻辑即可:

SELECT
    j.Stock_id,
    j.issued_qty,
    j.total,
    p.Price,
    p.Price * j.issued_qty AS purch_price,
    j.total - (p.Price * j.issued_qty) AS profit
FROM jobc_consumble j
INNER JOIN p_purch_stock p
    ON j.stock_id = p.stock_id
WHERE
    DATE_FORMAT(j.issue_time, '%Y-%m-%d') = '2018-07-03';

对于某些注释,重复购买价格逻辑的唯一替代方法是将当前查询包装为子查询并重复使用别名。但是,这可能不会太出色。您的DATE_FORMAT表达式意义不大,因为范围只是一天。如果您不喜欢我的版本,请告诉我们您真正想要的逻辑。