沃德天· 2021-09-17 10:24 采纳率: 33.3%
浏览 56
已结题

如何既显示每天的时间有显示一周的总数?

怎样显示成下面这样的
时间 -------------------- 数目(一周的数据)
2021-09-17 ------------ 12
2021-09-16 ------------ 15
2021-09-15 ------------ 16
2021-09-14 ------------ 18
2021-09-13(周一) -- 20
周一有20个周任务,周二完成了两个显示为18个,周三完成了两个显示为16个,这样怎样才能做到?
数据大概是这样的:
时间 ---------- 编号 ----- 任务类型
2021-09-17 10001 ---- 日
2021-09-17 10002----- 周
2021-09-16 10001----- 周
2021-09-16 10001-----日
我现在的语句:select 时间,编号,count(case when 任务类型=日 then 编号 end) as日数据,count(case when 任务类型=周 then 编号 end) as 周数据 from 数据表 where1=1 group by 时间,编号
现在我想让每天的周数据都显示这一周的,并且逻辑像最上面那样的逻辑,我该怎么改?

  • 写回答

2条回答 默认 最新

  • 唯一的小彬哥 2021-09-17 10:54
    关注

    这是修改后的答案:Oracle的伪代码
    思路是这样的,
    1.对表按时间进行group by这样可以得到每天的任务量合计 形成视图B。
    2.对表按周的时间进行group by得到每周的任务量合计 形成视图C。
    (周的计算用trunc(TO_DATE(时间,'YYYY/MM/DD'),'iw'))这是Oracle写法,这一周的7天调用函数都会得到每周的第一天。
    3.原始的表和视图B通过时间左关联得到结果集 得到每日的工作量合计
    4.原始的表和视图C左关联,关联条件为将每天的日期转换为周的第一天进行关联,关联后可得到每周工作量合计。

    select * from  table a
    left join (select 时间,count(*) fromgroup by 时间) b  on a.时间 = b.时间
    left join 
    (select trunc(TO_DATE(时间,'YYYY/MM/DD'),'iw'),count(*) fromwhere  任务类型 ='周' group by trunc(TO_DATE(时间,'YYYY/MM/DD'),'iw')) b
    on trunc(TO_DATE(a.时间,'YYYY/MM/DD'),'iw')= c.时间 
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 修改了问题 9月18日
  • 创建了问题 9月17日

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果