我有一个用于对库存进行个别审计的数据表。每个审计都有一个位置、一个期望值、一个方差值和一些其他在这里并不重要的数据。
我正在为 Cognos 11 编写一个查询,它总结了一周的这些审计。目前,它按位置类将所有内容汇总为总和。我的问题是单个位置可能有多个审计,虽然我希望方差字段对所有审计的数据求和,无论它是否是该位置的第一个计数,我只想要不同位置的预期值(即只有 SUM位置不同的预期值)。
以下是查询的简化版本。这甚至可能吗,还是我必须在 Cognos 中编写一个单独的查询并使其成为两个必须在事后合并的报告?您可能会说,我对 SQL 和 Cognos 还很陌生。
SELECT COALESCE(CASE
WHEN location_class = 'A'
THEN 'Active'
WHEN location_class = 'C'
THEN 'Active'
WHEN location_class IN (
'R'
,'0'
)
THEN 'Reserve'
END, 'Grand Total') "Row Labels"
,SUM(NVL(expected_cost, 0)) "Sum of Expected Cost"
,SUM(NVL(variance_cost, 0)) "Sum of Variance Cost"
,SUM(ABS(NVL(variance_cost, 0))) "Sum of Absolute Cost"
,COUNT(DISTINCT location) "Count of Locations"
,(SUM(NVL(variance_cost, 0)) / SUM(NVL(expected_cost, 0))) "Variance"
FROM audit_table
WHERE audit_datetime <= #prompt('EndDate') # audit_datetime >= #prompt('StartDate') #
GROUP BY ROLLUP(CASE
WHEN location_class = 'A'
THEN 'Active'
WHEN location_class = 'C'
THEN 'Active'
WHEN location_class IN (
'R'
,'0'
)
THEN 'Reserve'
END)
ORDER BY 1 ASC
这就是我希望最终得到的结果:
谢谢你的帮助!