请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

clonly2019

中级会员

41

主题

179

帖子

546

积分

中级会员

积分
546

微信认证勋章

clonly2019
中级会员   /  发表于:2019-5-21 14:30  /   查看:10243  /  回复:14
1金币
本帖最后由 clonly2019 于 2019-5-21 14:33 编辑


求这个表的视图写法,大致如下,按房源ID,然后按人名,出勤类型1,2的工时合计多少,出勤类型有[1,2],[3,4],[5,6],[7,8],[9,10],[11,12],[13,14],[15,16],[21,22],[23,24]

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

SELECT 房源ID,出勤人, SUM(CASE WHEN 出勤类型=3 AND 出勤类型=5 AND 出勤类型=7 AND 出勤类型

15 个回复

倒序浏览
最佳答案
最佳答案
cg6207悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2019-5-21 14:30:20
来自 12#


SELECT 房源ID,出勤人,
SUM(CASE WHEN 出勤类型<3 THEN 工时 ELSE 0 END) AS 一二工时,
SUM(CASE WHEN 出勤类型>=3 AND 出勤类型<5 THEN 工时 ELSE 0 END) AS 三四工时,
SUM(CASE WHEN 出勤类型>=5 AND 出勤类型<7 THEN 工时 ELSE 0 END) AS 五六工时,
SUM(CASE WHEN 出勤类型>=7 AND 出勤类型<9 THEN 工时 ELSE 0 END) AS 七八工时

FROM "房源出勤" GROUP BY 房源ID,出勤人

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

非常感谢,  发表于 2019-5-21 16:29

评分

参与人数 1金币 +200 收起 理由
Simon.hu + 200 赞一个!

查看全部评分

回复 使用道具 举报
clonly2019
中级会员   /  发表于:2019-5-21 14:36:19
2#
是这个意思,比如房源ID为166的 王钢 出勤类型1和2的工时总和
回复 使用道具 举报
cg6207悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2019-5-21 14:50:26
3#
放个demo出来啊
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2019-5-21 14:50:34
4#
clonly2019 发表于 2019-5-21 14:36
是这个意思,比如房源ID为166的 王钢 出勤类型1和2的工时总和

那如果房源ID为166的 王钢,出勤类型有1,2,3,4,5,6,7,8,你是要统计四行?1,2为一行计算工时总和;3,4为一行计算工时总和;5,6为一行计算工时总和;7,8为一行计算工时总和。是这个意思么?
建议你可以做一个小DEMO,带点数据,然后用个辅助表做成你想要的效果,这样我们理解起来可能更简单~
回复 使用道具 举报
clonly2019
中级会员   /  发表于:2019-5-21 14:53:46
5#
Eric.Liang 发表于 2019-5-21 14:50
那如果房源ID为166的 王钢,出勤类型有1,2,3,4,5,6,7,8,你是要统计四行?1,2为一行计算工时总和 ...

是的
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2019-5-21 15:00:08
6#
估计你使用统计字段就可以搞定您的需求了呢
统计字段的教程:https://help.grapecity.com.cn/pa ... ion?pageId=25723147

如果还是不行的话,请您上传一下您的demo
回复 使用道具 举报
clonly2019
中级会员   /  发表于:2019-5-21 15:19:19
7#
附件已上传

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
clonly2019
中级会员   /  发表于:2019-5-21 15:24:19
8#

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
limiao1986
注册会员   /  发表于:2019-5-21 15:29:04
9#
实际上关键就是在于如何将1和2分组成一个组对吧。对于oracle而言可以用translate函数设置对应关系,对于你这样的有规则的分组可以加一取整将1,2变成一个数。类似这样:SELECT name,(type+1)/2, sum(time) time FROM employtime  group by name,(type+1)/2;
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部