2015-02-10 53 views
1

我正在寻找一种方法来添加在另一个字段有条件的select语句中创建求和。这可以用一个例子来解释。SQL中的条件求和

假设我们有一个表

EmployeeID  SalesQty  Verified 
0025   34   Y 
0040   56   Y 
0040   17   N 
0040   44   Y 

然后我想退回以下,其中年销售总额超过对雇员进行分组所有salesqty值的总和下面的值,并核实销售金额只有那些记录进行了核实为Y.

EmployeeID  TotalSales  VerfifiedSales 
0025   34    34 
0040   117    100 

回答

6

试试这个:

SELECT 
    EmployeeID, 
    SUM(SalesQty) AS TotalSales, 
    SUM(CASE WHEN Verified = 'Y' THEN SalesQty ELSE 0 END) AS VerfifiedSales 
FROM 
    Tbl 
GROUP BY 
    EmployeeID 
1

使用验证= Y的条件的另一个和:

select EmployeeID, 
     sum(SalesQty) as TotalSales, 
     sum(case when verified = 'Y' then SalesQty else 0 end) as VerfifiedSales 
from table 
group by EmployeeID