mysql - 如何使用mysql查询划分

标签 mysql

这是我的查询

SELECT currency_code, SUM(
CASE
WHEN TYPE = 'buy'
THEN to_amount
END ) AS BUY, SUM(
CASE
WHEN TYPE = 'sell'
THEN to_amount
END ) AS SELL, SUM(
CASE
WHEN TYPE = 'sell'
THEN rate
END ) AS SELL_RATE, SUM(
CASE
WHEN TYPE = 'buy'
THEN rate
END ) AS BUY_RATE
FROM tb_currency
LEFT JOIN tb_bill ON tb_currency.CURRENCY_ID = tb_bill.CURRENCY_ID
AND tb_bill.TYPE
IN (
'buy', 'sell'
)

输出是

enter image description here

现在我想将 BUY 字段中的值除以 BUY_RATE 字段中的值。我之前尝试过几个查询并收到错误消息“Unknown column type BUY”。 如何解决?

最佳答案

你需要做一个子选择,像这样

SELECT *, (BUY/BUY_RATE) AS DIV_VALUE FROM (
    SELECT currency_code, SUM(
    CASE
    WHEN TYPE = 'buy'
    THEN to_amount
    END ) AS BUY, SUM(
    CASE
    WHEN TYPE = 'sell'
    THEN to_amount
    END ) AS SELL, SUM(
    CASE
    WHEN TYPE = 'sell'
    THEN rate
    END ) AS SELL_RATE, SUM(
    CASE
    WHEN TYPE = 'buy'
    THEN rate
    END ) AS BUY_RATE
    FROM tb_currency
    LEFT JOIN tb_bill ON tb_currency.CURRENCY_ID = tb_bill.CURRENCY_ID
    AND tb_bill.TYPE
    IN (
    'buy', 'sell'
    )
)

关于mysql - 如何使用mysql查询划分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989976/

相关文章:

php - 重置 ID 自动增量 ? phpmyadmin

php - 编辑 : how to automatically add data from a field when called

mysql - 获取 OrderAmount 的 SUM Total,其中 DueDate 在 1 - 30 天之间

mysql - MySQL 5.6 优化 SQL 查询

mysql - Perl MySQL - 如何拆分搜索字符串并与 LIKE %$word1%$word2% "dynamically"匹配?

mysql - MariaDB/MySQL tmp 表正在占用整个磁盘空间

mysql - 将列添加到 union select 语句会产生更多结果行

PHP - 如何从 MySQL 查询中获取所有行

mysql join从3个表中获取数据,添加时间和int,将错误作为总和值的倍数

python - 如果我们使用 SQLAlchemy 的 session.begin_nested ,为什么要提交而不给出更改?