Mysql 对SQL中的两列求和,其中一列需要求反
我想对SQL中的两列求和,如果和大于0,则将其输出到其中一列,如果小于0,则输出到另一列 我的代码如下所示:Mysql 对SQL中的两列求和,其中一列需要求反,mysql,sql,mariadb,Mysql,Sql,Mariadb,我想对SQL中的两列求和,如果和大于0,则将其输出到其中一列,如果小于0,则输出到另一列 我的代码如下所示: SELECT IF(SUM(`processed_quantity_long`,-1*`processed_quantity_short`) > 0,SUM(`processed_quantity_long`,-1*`processed_quantity_short`) AS `Position Long`,SUM(`processed_quantity_long`,-1*`pro
SELECT IF(SUM(`processed_quantity_long`,-1*`processed_quantity_short`) > 0,SUM(`processed_quantity_long`,-1*`processed_quantity_short`) AS `Position Long`,SUM(`processed_quantity_long`,-1*`processed_quantity_short`) AS `Position Short`)
From table A
GROUPBY date
它将返回以下错误:
您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解使用near'-1*processed\u quantity\u short
)>0,SUM(processed\u quantity\u long
,-1*`processed\u qua'在第5行的正确语法
不确定如何解决此错误。如果出现以下情况,则内部错误
SELECT IF(
SUM(processed_quantity_long-processed_quantity_short) > 0,
SUM(`processed_quantity_long`-`processed_quantity_short`) ,
SUM(`processed_quantity_long`-`processed_quantity_short`) AS `Position Short`
) From tableA GROUP BY date
一般情况下,如果语句如下所示
SELECT IF(500<1000, "YES", "NO")
SUM
不接受两个参数。只需在计算和之前减去两个数字:
SELECT
CASE WHEN SUM(processed_quantity_long - processed_quantity_short) >= 0 THEN SUM(processed_quantity_long - processed_quantity_short) END AS `Position Long`,
CASE WHEN SUM(processed_quantity_long - processed_quantity_short) < 0 THEN SUM(processed_quantity_long - processed_quantity_short) END AS `Position Short`
FROM tablea
GROUP BY date
选择
当总和(已处理数量-长处理数量-短处理数量)>=0时,总和(已处理数量-长处理数量-短处理数量)结束为“位置长”,
当总和(已处理数量长-已处理数量短)小于0时,总和(已处理数量长-已处理数量短)结束为“位置短”`
从表格
按日期分组
也许编写代码的最简单方法是:
SELECT GREATEST(SUM(processed_quantity_long - processed_quantity_short), 0) AS Position_Long,
LEAST(SUM(processed_quantity_long - processed_quantity_short), 0) AS Position_Short
FROM tablea
GROUP BY date
-1*
应该做什么?您只想减去这两列吗?
SELECT GREATEST(SUM(processed_quantity_long - processed_quantity_short), 0) AS Position_Long,
LEAST(SUM(processed_quantity_long - processed_quantity_short), 0) AS Position_Short
FROM tablea
GROUP BY date