我有一个看起来像这样的SQL语句:
select FY_CD, PD_NO, INPUT, SUM(HOURS) from LABOR_TABLE group by PD_NO, INPUT;
返回此:
FY_CD|PD_NO| INPUT | HOURS 2008 1 Actuals 61000 2008 1 Baseline 59000 2008 2 Actuals 54000 2008 2 Baseline 59000 2008 3 Actuals 60000 2008 3 Baseline 70000
我试图弄清楚如何从每个期间的基准值中减去实际值,并返回以下内容:
FY_CD|PD_NO| INPUT | HOURS 2008 1 Variance 2000 2008 2 Variance -5000 2008 3 Variance -10000
任何帮助表示赞赏。
实际上,您可以通过CASE检查的值直接直接计算出Input,
CASE
Input
SELECT FY_CD, PD_NO, 'Variance' INPUT, SUM(CASE WHEN Input = 'Actuals' THEN HOURS ELSE -1 * HOURS END) HOURS FROM LABOR_TABLE GROUP BY PD_NO