有两张表:部门表(部门ID,部门名,),职员表(职员ID,部门ID,职员姓名,职员工资)
1、求每个部门的工资总数和平均工资,
2、求有5个职员以上的部门信息,
谢谢各位,明天接帖

解决方案 »

  1.   

    1.
    SELECT 部门表.部门ID,部门表.部门名,SUM(职员表.职员工资) AS 工资总数
            SUM(职员表.职员工资)/COUNT(职员表.职员ID) AS 平均工资
    FROM 部门表 INNER JOIN
          职员表 ON 部门表.部门ID = 职员表.部门ID
    GROUP BY 部门表.部门ID,部门表.部门名2.
    SELECT 部门表.部门ID,部门表.部门名
    FROM 部门表 INNER JOIN
          职员表 ON 部门表.部门ID = 职员表.部门ID
    GROUP BY 部门表.部门ID,部门表.部门名
    HAVING COUNT(职员表.职员ID)>5
      

  2.   

    1、
    select a.部门名,b.* from 部门表 a left join 
    (select 部门ID,sum(职员工资) as 部门总工资,avg(职员工资) as 部门平均工资 
    from 职员表 group by 部门ID) b 
    on a.部门ID=b.部门ID
    2、
    select 部门表.*,b.部门职员数 from 部门表 inner join 
    (select 部门ID,count(*) as 部门职员数 from 职员表 group by 部门ID) b 
    on 部门表.部门ID=b.部门ID where b.部门职员数>=2
      

  3.   


    1、select sum(职员工资),avg(职员工资)
    from  职员表
    2、select 部门表.部门ID,count(职员ID)
    from 部门表,职员表
    where 部门表.部门ID=职员表.部门ID 
    group by 部门表.部门ID
    having count(职员ID)>=5
      

  4.   


    1、select 部门表.部门ID,sum(职员表.职员工资)
    from 部门表,职员表
    where 部门表.部门ID=职员表.部门ID
    group by 部门表.部门ID
    2、select 部门表.部门ID,count(职员表.职员ID)
    from 部门表,职员表
    where 部门表.部门ID=职员表.部门ID
    group by 部门表.部门ID
    having count(职员表.职员ID)>5
      

  5.   

    1 select 部门表.部门id,部门表.部门名,sum(职员表.职员工资) as 工资总数,avg(职员表.职员工资) as 平均工资 
    from  部门表 inner join 职员表 on 部门表.部门id = 职员表.职工id 
    group by 部门表.部门id
    2 select 部门表.部门id,部门表.部门名 ,count(职员表.职员ID) as 该部门职员数量
      from 部门表 inner join 职员表 on 部门表.部门id = 职员表.职工id 
      group by 部门表.部门ID
      having count(职员表.职员ID)>=5