IF(
[dbo.tblx.Category] = 'WS' OR [dbo.tblx.Category] = 'SEM',
0,
[dbo.tblx.Tonnes] * [dbo.tblx.Grade] / 1000
)
这将返回整个文本,而不是"计算"
有人可以帮助我......我做错了什么?
我试过
CASE WHEN dbo.tblx.Category = 'WS' OR dbo.tblx.Category = 'SEM' THEN 0
ELSE dbo.tblx.Tonnes * dbo.tblx.Grade / 1000
END AS Metal
也许在" CASE WHEN"?之前插入一些东西?它没有运行
答案 0 :(得分:0)
据我所知,您正在尝试使用其他表中的值创建计算列。 我认为在这种情况下,您必须在计算列的公式中使用用户定义函数。如果您提供更多信息,我可以尝试为您编写一些代码。
相反,如果您只想在查询中添加列,则可以使用:
CASE WHEN dbo.tblx.Category = 'WS' OR dbo.tblPTx.Category = 'SEM' THEN 0
ELSE dbo.tblx.Tonnes * dbo.tblx.Grade / 1000 END AS NAME_OF_YOUR_NEW_COLUMN
答案 1 :(得分:-3)
<强>更新强>
DECLARE @myvar INT;
SET @myvar = CASE WHEN ([dbo.tblx.Category] = WS OR [dbo.tblPTx.Category] = SEM) THEN 0
ELSE [dbo.tblx.Tonnes] * [dbo.tblx.Grade] / 1000
END