永发信息网

SQL语句编写 麻烦帮忙写一下一条SQL语句

答案:2  悬赏:20  手机版
解决时间 2021-03-17 05:22
SQL语句编写 麻烦帮忙写一下一条SQL语句
最佳答案
select d.name 申请部门,
a.hysmc 会议室名称,
f.count_wchys "5层会议室",
f.count_sjcdehys "19层第二会议室",
f.count_sjcdshys "19层第三会议室",
f.count_esecdyhys "22层第一会议室",
f.count_esecdehys "22层第二会议室",
(f.count_wchys+f.count_sjcdehys+f.count_sjcdshys+f.count_esecdyhys+f.count_esecdehys) 总计,
(to_char(b.meetingdate, 'yyyy')) 年度
from oa2_Reservemeeting b,
misbkjt1018.eg_hysinfo a,
misbkjt1018.KQD530130342 e,
oa2_user c,
oa2_group d,
(select s.name,
count(u.wchys) count_wchys,
count(u.sjcdehys) count_sjcdehys,
count(u.sjcdshys) count_sjcdshys,
count(u.esecdyhys) count_esecdyhys,
count(u.esecdehys) count_esecdehys
from oa2_Reservemeeting r,
oa2_group s,
oa2_user t,
misbkjt1018.KQD530130342 u
where r.slid = u.slid(+)
and r.reserveuserid = t.id(+)
and t.groupid = s.id(+)
group by s.name) f
where a.slid = b.slid(+)
and b.slid = e.slid(+)
and b.reserveuserid = c.id(+)
and c.groupid = d.id(+)
and d.name = f.name

这样写试试。追问字数多了,只能用截图了


追答你的意思是,前面不需要根据申请部门进行分组统计,最后所有的信息都统计为一条记录。是这样的吗?追问恩,是的,会议室就是不显示出来的
然后语句查询的时候,根据每个部门预定过的会议室,进行统计,统计出来的样式就是上面的图片那个追答select
d.name 申请部门,
a.hysmc 会议室名称,
f.count_wchys "5层会议室",
f.count_sjcdehys "19层第二会议室",
f.count_sjcdshys "19层第三会议室",
f.count_esecdyhys "22层第一会议室",
f.count_esecdehys "22层第二会议室",
(f.count_wchys+f.count_sjcdehys+f.count_sjcdshys+f.count_esecdyhys+f.count_esecdehys) 总计,
(to_char(b.meetingdate, 'yyyy')) 年度
from oa2_Reservemeeting b,
misbkjt1018.eg_hysinfo a,
misbkjt1018.KQD530130342 e,
oa2_user c,
oa2_group d,
(select s.name,
q.hysmc,
sum(u.wchys) count_wchys,
sum(u.sjcdehys) count_sjcdehys,
sum(u.sjcdshys) count_sjcdshys,
sum(u.esecdyhys) count_esecdyhys,
sum(u.esecdehys) count_esecdehys
from misbkjt1018.eg_hysinfo q,
oa2_Reservemeeting r,
oa2_group s,
oa2_user t,
misbkjt1018.KQD530130342 u
where q.slid = r.slid(+)
and r.slid = u.slid(+)
and r.reserveuserid = t.id(+)
and t.groupid = s.id(+)
group by s.name, q.hysmc) f
where a.slid = b.slid(+)
and b.slid = e.slid(+)
and b.reserveuserid = c.id(+)
and c.groupid = d.id(+)
and d.name = f.name
and a.hysmc = f.hysmc

把会议室的名也加到分组中。来自:求助得到的回答
全部回答

精妙方案:使用PIVOT()语法,进行行转列! 

-- 假如你会动态SQL构建,无论你有多少会议室均可自动出来;


普通方案:使用CASE语句

--公共部分-----------------

SELECt GroupID -- 部门
    ,RoomID -- 会议室
    ,Count(*) AS ApplyNum -- 申请次数
FROM oa2_Reservemeeting
WHERe to_char(meetingDate, 'yyyy') = 2016 -- 若想按年统计,则放到GROUP BY及SELECT中
GROUP BY GroupID, RoomID

对此结果集合,进行行列转换处理。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
魔域魂契武器销毁了 想再魂契其他的武器 为什
奥迪a6右前门打不开
在某只鸟的一窝灰壳蛋中发现一枚绿壳蛋,有人
动车误车可以改签几天
汗蒸一小时语录
什么牌子的门把手好
求搏击俱乐部百度云带中文字幕!谢谢啦!!!
世界古珠喜马拉雅艺术地址有知道的么?有点事
请问下,质量效应人物米兰达的父亲是谁?
为什么领了红包不回复。
圣经讲解如何下载
特别是早晚,总觉得口渴是怎么回事
报考现代驾校,问哪个教练好点
这是什么字,夼
古代称香蕉为什么
推荐资讯
定兴哪个洗浴有特色?
焊接圆管怎么测试焊接强度
魔战肩短宗套短宗还能玩吗,怎么打出伤害
国际象棋中的小兵走到敌方底线时
韩剧三姐妹中智英的扮演者是谁
2018年国考快来了,请教一下大家,哪家培训机
国企集团招聘拿指标和国企集团下属公司部门招
单选题下列说法中正确的是A.电流发生一个周期
台州高速股权是不是一张黄卡国泰证券,现在那
关于Groove Coverage主唱
小米4坏了 求大神看看图片说说是什么问题 是
梦见跟大黄狗用刀厮杀
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?