比如一张工资表,里面有若干员工的若干个月(数年)的工资发放情况表字段:员工编号 月份 月工资怎样写一个SQL查询,得出所有员工最近12个月各自的总收入情况
比如:
1 张三 60000(12个月工资总和)
2 李四 58000

N 王五 70000谢谢大家了...等待中

解决方案 »

  1.   

    select 员工编号,sum(月工资) as allMoney from 工资表 group by 员工编号,allMoney
    access的group by语句可能不认字段别名,那你就把最后的allMoney换成sum(月工资)
      

  2.   

    select 员工编号,sum(月工资) as allMoney from (select top 12 from 工资表 order by 月份 desc) group by 员工编号,allMoney
      

  3.   

    select 员工编号,sum(月工资) as allMoney from 工资表 
    where (你的时间条件)
    group by 员工编号,allMoney
      

  4.   

    disburden:
    我在access里试了一下select 员工编号,sum(月工资) as allMoney from (select top 12 * from 工资表 order by 月份 desc) group by 员工编号,allMoney这个查询通不过,问题在“group by 员工编号,allMoney”这里,如果“allMoney”用“sum(月工资)”代替也不行,提示group by 中不能有sum语句麻烦你在指导一下,麻烦知道的兄弟帮帮忙
      

  5.   

    首先你這個月份是怎樣表達的,比如是不是諸如:201105
    select 員工編號,sum(月工資) as 十二月工資總數
    from 工資表
    where 月份>='201006' and 月份<='201105' //條件篩選可以根據月份這個字段的類型確定。
    group by 員工編號
      

  6.   

    Oraclers,谢谢你你的回答我发觉还是不能满足我的需要,如果每个人对应的起止月份不一样呢因为有些人在某个月可能没有拿奖金或工资,所以每个人的最近一年的起止月份可能不一样,还是只能取每个人最近的12条记录来求和才准确麻烦知道的朋友顶一下
      

  7.   

    select Q.員工編號,sum(Q.月工資) as 十二月工資總數
    from (select top 12 * from 工資表 order by 月份 desc) Q
    group by Q.員工編號
      

  8.   

    Oraclers,再次谢谢你我试了一下,能顺利返回查询结果,但结果只返回了每个员工对应的最近一个月的结果,而不是最近12个月的工资总和select top 12 * from 工資表 order by 月份 desc 返回的结果不对请你和大家再帮帮忙