是否存在获得该结果的模式或方法?请在帖子中显示我的图像 我希望我的结果是垂直数字(黑线)乘以水平数字(红线)的乘积
问问题
1341 次
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 回答