Sql 如何得到两个案例陈述的乘积
我试图使用下面的代码组合case语句,并不断遇到错误Sql 如何得到两个案例陈述的乘积,sql,case,Sql,Case,我试图使用下面的代码组合case语句,并不断遇到错误 SELECT dbo.COL_TBL_WAGES.[Job Group], SUM(CASE WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST' THEN ([CountOfEMP_TNG_STT_DT] * (WHEN IsNumeric([TBL_VCOUR
SELECT
dbo.COL_TBL_WAGES.[Job Group],
SUM(CASE
WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST'
THEN ([CountOfEMP_TNG_STT_DT] *
(WHEN IsNumeric([TBL_VCOURSE.Length])
THEN TBL_VCOURSE ELSE 0 END) AS ST_Hours
看起来您需要这样做,因为您的原始文档中有两个大小写表达式:
SELECT dbo.COL_TBL_WAGES.[Job Group],
SUM(CASE
WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST'
THEN [CountOfEMP_TNG_STT_DT]
ELSE 0 END
* CASE
WHEN IsNumeric([TBL_VCOURSE.Length]) = 1
THEN TBL_VCOURSE
ELSE 0 END
) AS ST_Hours
编辑,根据您的评论,您的查询将类似于:
SELECT dbo.COL_TBL_WAGES.[Job Group],
SUM(CASE
WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST'
THEN [CountOfEMP_TNG_STT_DT] ELSE 0 END
* CASE
WHEN IsNumeric([COL_TBL_VCOURSE].[Length]) = 1
THEN COL_TBL_VCOURSE.[LENGTH]
ELSE 0 END) AS ST_Hours,
SUM(CASE
WHEN COL_V_COST.EMP_TNG_RL_CD = 'ST'
THEN [CountOfEMP_TNG_STT_DT]*CAST([2011 Total] AS FLOAT) ELSE 0 END
* CASE
WHEN IsNumeric([COL_TBL_VCOURSE].[LENGTH]) = 1
THEN CAST([COL_TBL_VCOURSE].[LENGTH] AS FLOAT) ELSE 0 END) AS ST_Cost
嗯,遇到错误是相当模糊的。也许你可以澄清一下?它是说WHEN和THEN语句不可识别。你能告诉我们你使用的是什么平台SQL Server、MySQL和Access吗?谢谢现在我得到一个错误,说TBL_VCOURSE列名无效。您有一个名为TBL_VCOURSE的列吗?这是您在原始帖子中的列。@user1958651那么,如果TBL_VCOURSE.Length是数字,您希望使用哪个列或值?你想使用长度列吗?是的,现在它说我在一个字段附近使用了issing语法,代码是'SELECT dbo.COL_TBL_WAGES.[Job Group],SUMCASE WHEN colu V_COST.EMP_TNG_RL_CD='ST'然后[CountOfEMP_TNG_STT_DT]否则0 END*CASE当是数字[COL_TBL_VCOURSE].[Length]=1然后COL_TBL_VCOURSE ELSE 0结束时为ST_小时,当COL_V_成本时为SUMCASE。EMP_TNG_rlu CD='ST'然后[CountOfEMP_TNG_STT_DT]*将[2011总计]转换为FLOAT*当为数字[COL_TBL_VCOURSE].[LENGTH]=1然后将[COL_TBL_VCOURSE].[LENGTH]转换为FLOAT否则0结束时为ST_成本,谢谢大家的帮助。这将帮助我了解未来的流程。