【问题标题】:assigning mysql value to variable inline将mysql值分配给变量内联
【发布时间】:2011-04-11 15:12:07
【问题描述】:

为什么这不起作用我试图获取以前的和当前的值来计算百分比变化。我正确地得到了这两个值,但现在我怎样才能重用它们来做数学运算

当我尝试以下命令时,我得到 ERROR 1054 (42S22):“字段列表”中的未知列“currentVal”

            SELECT IFNULL(DValue,0) as currentVal, 
                      (SELECT IFNULL(DValue,0) 
                       FROM ...
                       WHERE...) as previousVal, 
                      (currentVal-previousVal)/previousVal
            FROM ...
            WHERE ...;

【问题讨论】:

    标签: mysql mysql-error-1054


    【解决方案1】:

    你不能在同一个 SELECT 中引用一个别名列,你必须把它放在一个子查询中:

    SELECT currentVal, previousVal, (currentVal-previousVal)/previousVal
    FROM (
                SELECT    IFNULL(DValue,0) as currentVal, 
                          (SELECT IFNULL(DValue,0) 
                           FROM ...
                           WHERE...) as previousVal, 
                FROM ...
                WHERE ...) T;
    

    【讨论】:

      【解决方案2】:

      围绕您当前拥有的内容进行另一个查询并在那里计算您的百分比:

      SELECT currentVal, previousVal, 
             (currentVal-previousVal)/previousVal AS percentChange
          FROM (SELECT IFNULL(DValue,0) as currentVal, 
                        (SELECT IFNULL(DValue,0) 
                             FROM ...
                             WHERE...) as previousVal
                    FROM ...
                    WHERE ...) t
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-11
        • 1970-01-01
        • 2014-04-26
        • 1970-01-01
        • 1970-01-01
        • 2013-03-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多