三个表,做个统计,情况如下
tb_user
userid,username,deptida,aname,deptid1
b,bname,deptid2
-------------------------------
tb_deptdeptid,deptnamedeptid1,deptname1
deptid2,deptname2
--------------------------------
tb_syslogusername,logintime-----------------------------------
现在我要统计某段时间内,用户所登录的次数,如何写这条sql语句,结果如下username deptname,logintimes

解决方案 »

  1.   

    select username,deptname,logintimes=count(1)
    from tb_user a
      join tb_dept b
        on a.deptid=b.deptid
      join tb_syslog c
        on a.username=c.username
    group by username,deptname
      

  2.   

    SELECT username, deptname, logintimes = COUNT(1) 
    FROM tb_user a
    JOIN tb_dept b
    ON  a.deptid = b.deptid
    JOIN tb_syslog c
    ON  a.username = c.username
    WHERE logintime BETWEEN @开始时间 AND @结束时间
    GROUP BY username, deptname
      

  3.   


    select m.username , n.deptname , count(1) logintimes
    from tb_syslog m, tb_dept n ,tb_user 0
    where m.username = o.username and o.deptid = n.deptid where m.logintime between '时间1' and '时间2'
    group by m.username , n.deptname
      

  4.   

    declare @t1 datetime ,@t2 datetime 
    set @t1=你要给的参数
    set @t2=你要给的参数
    select a.username, deptname,logintimes from(select cout(*) as logintimes,username from datetime  where logintime between @t1 and @t2 group by username) a
    left join tb_user b 
    on a.username=b.username
    left join tb_dept c
    on b.deptid= c.deptid