表:KM_TeamEmp 
字段:
    u_empid: ID
    dbo.getempname(u_empid)as u_empname:根據ID獲取姓名
     u_allow < 0:扣款
     u_allow > 0:獎金
     u_date 日期
select u_empid,u_date,dbo.getempname(u_empid)as u_empname,
sum(case when [u_allow]<0 then [u_allow] else 0 end) as u_allow1,
sum(case when [u_allow]>0 then [u_allow] else 0 end) as u_allow2,
sum([u_allow]) as [u_sum] from KM_TeamEmp 
where 1=1 and month(u_date) = N'05' and year(u_date)=N'20'+'08' 
group by u_empid,u_date  
order by u_empid,u_empname
此語句只實現了區分扣款﹐獎金﹐但是沒實現扣款﹐獎金的每月相加
我想讓以上語句實現
同月份﹐每個人﹐每天的扣款﹐獎金加總起來
也就是說每個月只看到每個員工的一條匯總記錄
感謝此語句的提供者,本論壇一位大哥,偶case語句用的不好﹐

解决方案 »

  1.   


    select u_empid,substring(convert(varchar(10),u_date,120),1,7),dbo.getempname(u_empid)as u_empname,
    sum(case when [u_allow]<0 then [u_allow] else 0 end) as u_allow1,
    sum(case when [u_allow]>0 then [u_allow] else 0 end) as u_allow2,
    sum([u_allow]) as [u_sum] from KM_TeamEmp 
    where 1=1 and month(u_date) = N'05' and year(u_date)=N'20'+'08' 
    group by u_empid,substring(convert(varchar(10),u_date,120),1,7)  
    order by u_empid,u_empname
      

  2.   

    汗水
    select u_empid,dbo.getempname(u_empid)as u_empname,
    sum(case when [u_allow]<0 then [u_allow] else 0 end) as u_allow1,
    sum(case when [u_allow]>0 then [u_allow] else 0 end) as u_allow2,
    sum([u_allow]) as [u_sum] from KM_TeamEmp 
    where 1=1 and month(u_date) = N'05' and year(u_date)=N'20'+'08' 
    group by u_empid  
    order by u_empid,u_empname
    分組語句﹐去掉u_date 就行了的..
    還是感謝樓上的解答﹐50分送你了.