sql查询分组条件

时间:2015-02-21 10:33:43

标签: sql grouping

有一个表格,其中包含员工编号(列)和月份付款(列),其中paramcode(列)为基本,vda等..以及与每个参数码对应的金额(列)。

empno.  month  paramcode amount
1        jan     basic     788
1        feb      vda      232
1        march     pf      12

现在这是实际问题

写一个查询以显示员工已付款PF的员工付款的BASIC + VDA + HRA总和

(不要使用子查询,联接和设置运算符)

我的回答是

SELECT EmployeeNumber,paramcode, SUM(ActualAmount) AS S FROM pay
WHERE ParamCode IN ('BASIC','VDA','HRA','pf') 
GROUP BY GROUPING SETS((EmployeeNumber,ParamCode))
ORDER BY EmployeeNumber

但我希望用param代码消除员工编号为' pf'

2 个答案:

答案 0 :(得分:0)

如果我理解你正确使用除了像这样的标签之外的SQL,除了('pf')中的ParamCode

答案 1 :(得分:0)

您实际上是在ParamCode中添加'PF',这是正确的查询:

SELECT EmployeeNumber,paramcode, SUM(ActualAmount) AS S FROM pay
WHERE ParamCode IN ('BASIC','VDA','HRA') 
GROUP BY GROUPING SETS((EmployeeNumber,ParamCode))
ORDER BY EmployeeNumber