连接查询+数据统计计算,如何做呢?

bcc222 2012-07-27 03:43:34
现在有2个表,a 表和b表,

我做了一次left join 获得了一个集合


select c.username,avg(c.diff) from
(
select b.username ,b.department ,datediff(hour,a.timestr,a.latetime) as diff
from worktodo a
left join users b
on a.userid=b.truename
) c
group by c.username


出来的数据想再按照用户名进行一下统计,我想在这个基础上再按照username的名字求一下时间差的平均值

现在我有点小迷糊的地方,为啥 中间的select如果不加入别名的话会报错?

像这样的复杂查询,应当怎么去学习分解呢?













...全文
57 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Net攻城狮 2012-07-27
  • 打赏
  • 举报
回复
这种临时表 不加别名的话 就像你找一个东西 必须知道 你要找的是什么才行
icebbb34 2012-07-27
  • 打赏
  • 举报
回复

先执行子查询中间的部分 后进行统计 因为这个中间结果 会缓存在一个临时表中 这个表的名字 你未知 所以应用要定义下它的别名 好对应去找到他进行统计

select b.username ,b.department ,datediff(hour,a.timestr,a.latetime) as diff
from worktodo a
left join users b
on a.userid=b.truename

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧