【发布时间】:2016-06-13 17:52:41
【问题描述】:
我正在尝试查找报告项目的人工和间接费用。人工和间接费用是通过处理在因子列和比率列中找到的数据来找到的。这些因素和比率按不同的类型分类。它比它需要的复杂得多,理解它是我的工作。
当类型 = W10 时,成本是基于人工的,当类型 = WO1 或 WO2 时,成本是基于间接费用的。
我的困境在于我必须将 Type = 'WO1, WO2' 时找到的值相加才能得到总间接费用。
我决定使用 CASE/WHEN 来尝试获取我需要的数据,但我不知道如何将 Overhead 的成本加在一起。
到目前为止我的代码是:
SELECT DISTINCT 'LABOR' = CASE
WHEN TYPE = 'W10' THEN (FACTOR * RATE)
ELSE 0
END, //This part is fine//
'OVERHEAD' = CASE
WHEN TYPE = 'WO1, WO2' THEN SUM(FACTOR * RATE)
ELSE 0
END,
FROM TABLE_1
但是,当 Type = WO1 或 WO2 时,SUM(Factor * Rate) 不会将两行 Costs 相加,它返回 0,如下所示:
我不知道我如何描述我的问题,但如果你们能帮助解决这个问题,那就太好了。
【问题讨论】:
-
这是什么数据库?您同时拥有
mysql和tsql(SQL Server) 标记。 -
@jabo13 没有 GROUP BY 的聚合函数?
-
@Bijujose 我没有将 Group By 添加到我的示例代码中,因为我认为手头的问题没有必要,但在 FROM TABLE_1 下方,我有 GROUP BY Rate、Factor、类型
标签: mysql sql tsql case case-when