Database 板


LINE

(针对 SQL 语言的问题,用这个标题。请用 Ctrl+Y 砍掉这行) 资料库名称:oracle sql 资料库版本: 内容/问题描述: 主要问题有二 一 栏位一 时间区间以 当日每小时 做间隔,不知道有没有时间函数可以处理? 目前想到 以 CASE 作条件输出 ; WITH 做虚拟表格 查询 ; 制作 VIEW 观视表 (和WITH 一样) 二 达成率希望做个别统计 EX: 07:00 产量/100 ; 08:00 产量/50 主要卡在问题一的时间区隔处理, 没有其他资料表有相关栏位可以做 JOINT 或 子查询 请大家帮帮忙 资料表 G_SN_TRAVEL 栏位 OUT_PROCESS_TIME (DATE 机台过站时间戳记) 希望输出查询统计表如下 栏位一 栏位二 栏位三 CLOCK_TIME QTY(产量) RATE(达成率) 07:00 XXX XX % 08:00 XXX XX % 09:00 XXX XX % 已有 方案 都可以完成 问题一 方案一 SELECT (case to_char(A.OUT_PROCESS_TIME,'HH24') when '07' then '07:00~07:59' when '08' then '08:00~08:59' when '09' then '09:00~09:59' when '10' then '10:00~10:59' when '11' then '11:00~11:59' when '12' then '12:00~12:59' when '13' then '13:00~13:59' when '14' then '14:00~14:59' when '15' then '15:00~15:59' when '16' then '16:00~16:59' when '17' then '17:00~17:59' when '18' then '18:00~18:59' when '19' then '19:00~19:59' when '20' then '20:00~20:59' end) AS TIME_CLOCK, COUNT (A.OUT_PROCESS_TIME) AS QTY, TO_CHAR ((COUNT (A.OUT_PROCESS_TIME) /120),'0.000') AS RATE FROM SAJET.G_SN_TRAVEL A WHERE A.PROCESS_ID = '100032' AND to_char(A.OUT_PROCESS_TIME,'YYYYMMDD') = TO_CHAR(SYSDATE,'YYYYMMDD') GROUP BY (case to_char(A.OUT_PROCESS_TIME,'HH24') when '07' then '07:00~07:59' when '08' then '08:00~08:59' when '09' then '09:00~09:59' when '10' then '10:00~10:59' when '11' then '11:00~11:59' when '12' then '12:00~12:59' when '13' then '13:00~13:59' when '14' then '14:00~14:59' when '15' then '15:00~15:59' when '16' then '16:00~16:59' when '17' then '17:00~17:59' when '18' then '18:00~18:59' when '19' then '19:00~19:59' when '20' then '20:00~20:59' end) ORDER BY (case to_char(A.OUT_PROCESS_TIME,'HH24') when '07' then '07:00~07:59' when '08' then '08:00~08:59' when '09' then '09:00~09:59' when '10' then '10:00~10:59' when '11' then '11:00~11:59' when '12' then '12:00~12:59' when '13' then '13:00~13:59' when '14' then '14:00~14:59' when '15' then '15:00~15:59' when '16' then '16:00~16:59' when '17' then '17:00~17:59' when '18' then '18:00~18:59' when '19' then '19:00~19:59' when '20' then '20:00~20:59' end) ASC =============================== 方案二 with v_today(vday) as ( SELECT to_char(sysdate,'YYYYMMDD')FROM dual ), --select * from v_today v_G_SN_TRAVEL(v_WORK_ORDER,v_SERIAL_NUMBER,v_OUT_PROCESS_TIME,v_vc_time) as ( select a.WORK_ORDER ,a.SERIAL_NUMBER ,a.OUT_PROCESS_TIME ,to_char(a.OUT_PROCESS_TIME,'YYYYMMDDHH24MISS') as vc_time from SAJET.G_SN_TRAVEL a ,v_today b where 0=0 --and a.WORK_ORDER = 'MO20050015' and a.PROCESS_ID = '100032' and to_char(a.OUT_PROCESS_TIME,'YYYYMMDD') BETWEEN b.vday and b.vday ), --select * from v_G_SN_TRAVEL v_clock_07 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '070000' and '079999' ), v_clock_08 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '080000' and '089999' ), v_clock_09 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '090000' and '099999' ), v_clock_10 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '100000' and '109999' ), v_clock_11 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '110000' and '119999' ), v_clock_12 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '120000' and '129999' ), v_clock_13 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '130000' and '139999' ), v_clock_14 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '140000' and '149999' ), v_clock_15 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '150000' and '159999' ), v_clock_16 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '160000' and '169999' ), v_clock_17 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '170000' and '179999' ), v_clock_18 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '180000' and '189999' ), v_clock_19 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '190000' and '199999' ), v_clock_20 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '200000' and '209999' ), v_clock_21 (v_count_time) as ( select COUNT(v_vc_time) from v_G_SN_TRAVEL where to_char(v_OUT_PROCESS_TIME,'HH24MISS') BETWEEN '210000' and '219999' ), sum_clock_data (v_itm,v_scd) as ( select '07:00 ~ 07:59' as v_itm ,v_count_time from v_clock_07 union all select '08:00 ~ 08:59' as v_itm ,v_count_time from v_clock_08 union all select '09:00 ~ 09:59' as v_itm ,v_count_time from v_clock_09 union all select '10:00 ~ 10:59' as v_itm ,v_count_time from v_clock_10 union all select '11:00 ~ 11:59' as v_itm ,v_count_time from v_clock_11 union all select '12:00 ~ 12:59' as v_itm ,v_count_time from v_clock_12 union all select '13:00 ~ 13:59' as v_itm ,v_count_time from v_clock_13 union all select '14:00 ~ 14:59' as v_itm ,v_count_time from v_clock_14 union all select '15:00 ~ 15:59' as v_itm ,v_count_time from v_clock_15 union all select '16:00 ~ 16:59' as v_itm ,v_count_time from v_clock_16 union all select '17:00 ~ 17:59' as v_itm ,v_count_time from v_clock_17 union all select '18:00 ~ 18:59' as v_itm ,v_count_time from v_clock_18 union all select '19:00 ~ 19:59' as v_itm ,v_count_time from v_clock_19 union all select '20:00 ~ 20:59' as v_itm ,v_count_time from v_clock_20 union all select '21:00 ~ 21:59' as v_itm ,v_count_time from v_clock_21 ) select (v_itm)"Time Clock",(v_scd)"Output Qty" from sum_clock_data -- 从表象看起来我是个没啥事的闲人╭(─╴─)╮ 其实我的真实身份是............研究僧 研究如何将自己脱离去死团方法.........................Orz --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.216.86.175 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1595486385.A.D77.html
1F:推 hwChang: 看有没有像是 MySQL 函数 DATE_FORMAT(`datetime`,'%h') 07/23 17:25
2F:→ hwChang: 例如 2020-07-23 17:26:22 会得到 17 07/23 17:26
3F:→ hwChang: 去 group by DATE_FORMAT(`datetime`, '%h') 07/23 17:26
4F:→ hwChang: 可以加总每个小时的产量 07/23 17:27







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP