Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何得到两个案例陈述的乘积_Sql_Case - Fatal编程技术网

Sql 如何得到两个案例陈述的乘积

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

我试图使用下面的代码组合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_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_成本,谢谢大家的帮助。这将帮助我了解未来的流程。