0

是否存在获得该结果的模式或方法?请在帖子中显示我的图像替代文字 我希望我的结果是垂直数字(黑线)乘以水平数字(红线)的乘积

4

2 回答 2

1

请试试这个:

select cast(exp(sum(log(ExpPeso))) as float) as myresult1, (tda1*tda2*tda3*tda4) as reslutset2  
from TableName
于 2010-11-05T21:35:47.833 回答
1

如果您通过将编号列提取到表中来规范化数据,例如

Matrix
Name  Value
Tda1    94.5
Tda2    21.1
Tda3    53.4
Tda4    21.1

并假设原始表名为表,列中的列 tda 值称为名称和值与命名表达式相乘(抱歉无法读取您的列名)

那么你可以

SELECT matrix.value * table.expression
FROM matrix m INNER JOIN table t
    ON m.name = t.tda_value

如果您不能更改结构,那么在标准 SQL(恕我直言)中,您将不得不做案例

SELECT 
      CASE t.tda_value 
          WHEN "Tda1" THEN Tda1
          WHEN "Tda2" THEN Tda2
          WHEN "Tda3" THEN Tda3
          WHEN "Tda4" THEN Tda4
          ELSE 0
      END * t.expression
FROM table

笔记:

  • 您可能想要 ELSE NULL (或跳过其他)。
  • 一些数据库对标准进行了扩展,允许您将动态列添加到行

编辑:当然,冒着说明太明显的风险,最后你可以对上述查询进行 SUM。

于 2010-11-05T22:52:28.387 回答