mysql 如何在计算结果小于零时实现if子句

mccptt67  于 2023-02-15  发布在  Mysql
关注(0)|答案(1)|浏览(164)

我的工作准则是:

UPDATE `tab_base_asset` 
INNER JOIN `vw_calcula_taxa_adm_ymf_acumulada_3` 
    ON `tab_base_asset`.`codigo_fundo` = `vw_calcula_taxa_adm_ymf_acumulada_3`.`codigo_fundo`
SET `tab_base_asset`.`RECEITA_ADM_YMF` = (`tab_base_asset`.`saldo_bruto_cdc`/`vw_calcula_taxa_adm_ymf_acumulada_3`.`saldo_bruto_cdc`) * `vw_calcula_taxa_adm_ymf_acumulada_3`.`receita_YMF_ACUM`, 
    `tab_base_asset`.`RECEITA_REBATE` = (`tab_base_asset`.`saldo_bruto_cdc`/`vw_calcula_taxa_adm_ymf_acumulada_3`.`saldo_bruto_cdc`) * `vw_calcula_taxa_adm_ymf_acumulada_3`.`Rebate_acumulado`
WHERE `tab_base_asset`.`data` = (SELECT `tab_aux_datas_base_unica`.`data_final` FROM `tab_aux_datas_base_unica`);

我想使列receita_adm_ymf对于小于0的值变为0。
我在My SQL Workbench 5.2上使用IF时遇到一些语法错误。我还尝试了Case,但我不确定将其放在代码中的什么位置。

tjvv9vkg

tjvv9vkg1#

使用GREATEST()函数指定表达式值的最大值和零。

SET `tab_base_asset`.`RECEITA_ADM_YMF` = GREATEST(0, (`tab_base_asset`.`saldo_bruto_cdc`/`vw_calcula_taxa_adm_ymf_acumulada_3`.`saldo_bruto_cdc`) * `vw_calcula_taxa_adm_ymf_acumulada_3`.`receita_YMF_ACUM`),

相关问题