现有一个关于律师事务所的关系模式:
客户(客户编码,客户姓名,性别,工作单位,职业)
律师(律师号,律师姓名,性别,年龄,专长代码)
咨询记录(日期,客户编码,律师号),其中日期为字符型,其格式为“yyyymmdd”。查询2002年各种专长中咨询人数最多的律师及其年龄多谢

解决方案 »

  1.   


    select top 1 count(1) as 数量,b.专长代码,b.律师姓名,b.年龄 from 咨询记录 a 
     left join 律师 b on a.律师号=b.律师号 
    where cast(a.日期 as datetime) between '2002-01-01' and '2002-12-31'
     group by b.专长代码,b.律师姓名,b.年龄
    order by 1 desc
      

  2.   


    select top 1 c.律师号,b.年龄,b.专长代码,b.律师姓名
    from 客户 a,律师 b,咨询记录 c
    where a.客户编码=c.客户编码 and b.律师号=c.律师号 and year(日期)=2002
    group by b.年龄,b.专长代码,b.律师姓名
    order by count(*) desc
      

  3.   

    select a.律师姓名 , a.年龄 from
    (
      select m.专长代码 , m.律师号 , m.律师姓名 , m.年龄 , count(1) cnt from 律师 m , 咨询记录 n where m.律师号 = n.律师号 and year(n.日期) = 2002 group by m.专长代码 , m.律师号 , m.律师姓名 , m.年龄
    ) a where cnt = (select max(cnt) from
    (
      select m.专长代码 , m.律师号 , m.律师姓名 , m.年龄 , count(1) cnt from 律师 m , 咨询记录 n where m.律师号 = n.律师号 and year(n.日期) = 2002 group by m.专长代码 , m.律师号 , m.律师姓名 , m.年龄
    ) b where a.专长代码 = b.专长代码)
      

  4.   

    客户 主码是客户编号,律师 主码是律师号,一个律师只有一种专长
    咨询记录主码,是全码 Xiao_Ai_Mei 答案有原则错误 投影属性c.律师号 ,不是分组属性最正确的是dawugui,学到了一点是,from table,此table可以是select出来的临时查询表