mysql - mysql 中有多个条件的情况

标签 mysql case-when multiple-conditions

CASE WHEN (D.BUYQ>0 AND D.SELLQ>0 AND D.series_expiry='2050-01-01') then
 sum(D.stt_INTRA_buy*least(D.buyq,D.SELLQ)*D.buyavg)+sum(D.stt_buy*(D.buyq-least(D.buyq,D.SELLQ))*D.buyavg) 
ELSE
sum(D.stt_buy*D.buyq*D.buyavg) 
 END) as xsttbuy

case 条件始终为 False,即使数据库中存在满足 True 条件的数据,它也会进入 else 状态。

最佳答案

我怀疑您的意思是将测试应用于每个数据库行,而不是每个结果行。如果是这样,您需要将案例移至总和中:

SUM(
    CASE WHEN (D.BUYQ>0 AND D.SELLQ>0 AND D.series_expiry='2050-01-01') THEN
        D.stt_INTRA_buy*LEAST(D.buyq,D.SELLQ)*D.buyavg)+D.stt_buy*(D.buyq-LEAST(D.buyq,D.SELLQ))*D.buyavg 
    ELSE
        D.stt_buy*D.buyq*D.buyavg
    END
) AS xsttbuy

关于mysql - mysql 中有多个条件的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45627300/

相关文章:

sql - 如何同时使用 SQL WHERE CASE 和 NOT IN 或 equals?

php - php 页面中的查询不起作用

php - 在 WHERE 子句中写入两个条件会导致 PDO 查询输出不正确

javascript - if 语句中的多个条件 : Need for validating undefined before checking other conditions

php - 使用 PHP、MySQL 的单个查询中的两个函数

mysql - 在语句的 WHERE 部分使用 OR 过滤 SQL 结果的最佳实践

php - 如何从表中选择行,然后输入到新表中,在 php mysql 中循环计数选择之前

Java 不会通过 JNDI 数据源在 MySQL 中写入 UTF8 字符

r - 在 R 中的 mutate(across()) 中将列与 case_when 内的后续列联合起来的一般方法

c# - 如何让控制台读取所有条件