SQL基于具有Group By语句的第二列值减去列值

the*_*ine 2 sql group-by subtraction

我有一个看起来如此的SQL语句:

select FY_CD, PD_NO, INPUT, SUM(HOURS) 
from LABOR_TABLE
group by PD_NO, INPUT;
Run Code Online (Sandbox Code Playgroud)

回来这个:

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
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何从每个时期的基线值中减去实际值,返回以下内容:

FY_CD|PD_NO| INPUT |    HOURS

2008    1   Variance    2000
2008    2   Variance    -5000
2008    3   Variance    -10000
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

Joh*_*Woo 6

你可以直接用它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
Run Code Online (Sandbox Code Playgroud)