查询问题.关于sql关联查询。谢谢

idiotnoarea 2003-05-06 04:58:59
我想实现这样的效果
users table
id work_no username
1 222 aaa
2 ccc bbbb


hotel table
id name recommend
1 haha yes
2 xixi no



orderlist table

id hotel(hotel id ) userid(users id ) updatetime status
1 1 2 2003-5-6 4
2 1 1 2003-6-6 5


orderlist table 中status 为4时候为noding 5的时候为normal
需要得到这样的结果

月份 名次 姓名 业绩(员工预定总次数) recommend noding normal 合计
次数 次数 次数 总次数-前面几项



请教高手解决。谢谢
...全文
28 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CrazyFor 2003-05-07
  • 打赏
  • 举报
回复
sum(1)就是的结果就是记录数,

就相当于:sum(字段),而这个字段的所有记录的值都是1.
idiotnoarea 2003-05-07
  • 打赏
  • 举报
回复
to caiyunxia
我想知道sum(1)是指什么呢?
为什么要sum(1)呢
这个句子我还是有点不明白是什么意思
其他的都明白,就是为什么要sum(1),还有该员工的总预定次数好象没有体现出来啊?
idiotnoarea 2003-05-07
  • 打赏
  • 举报
回复
谢谢
caiyunxia 2003-05-07
  • 打赏
  • 举报
回复
select convart(char(7),updatetime,120),username ,sum(1),sum(case when status=4 then 1 else 0 end ) as noding,sum(case when status=5 then 1 else 0 end ) as normal
from users a,hotel b,orderlist c where a.id=b.id and b.id=c.id
group by convart(char(7),updatetime,120),username
idiotnoarea 2003-05-07
  • 打赏
  • 举报
回复
先谢谢。我试一下给分。
hkren 2003-05-07
  • 打赏
  • 举报
回复
SELECT....
FROM 三表连接
GROUP BY 月份 , USERID WITH ROLLUP
HAVING (GROUPING(月份) = 1 AND GROUPING(USERID)=1 )
OR
(GROUPING(月份) = 0 AND GROUPING(USERID)=0 )
ORDER BY COUNT(*)
idiotnoarea 2003-05-06
  • 打赏
  • 举报
回复
奇怪了。今天真的没有人回答嘛?

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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