关于一张表内多个时间字段关联问题下面粘上要查询的表结构及查询说明如果没有方法的话请留言这问题无解

CREATE TABLE table (
id int(11) NOT NULL AUTO_INCREMENT COMMENT '订单id',
scheduled_time datetime DEFAULT NULL COMMENT '预约时间',
snatch_time datetime DEFAULT NULL COMMENT '接单时间',
finish_time datetime DEFAULT NULL COMMENT '完成时间(加油完成)',
create_time datetime DEFAULT NULL COMMENT '创建时间',
update_time datetime DEFAULT NULL COMMENT '修改时间',
finish_pay_time datetime DEFAULT NULL COMMENT '完成时间(支付完成)',
) 根据不同的时间字段,计算每个时间点(精确到小时)的预约,接单,完成加油,创建,修改,完成量,查询出来需要有连续的日期,时间点拜托各位大神急用运行速度最好要快点

1个回答

oracle : 不知道是不是你想要的
select time,nvl(scheduled_time,0),nvl(snatch_time,0),nvl(finish_time,0),nvl(create_time,0),nvl(update_time,0),nvl(finish_pay_time,0)
from
(
select to_date('20190501','yyyymmdd')+rownum-1 time from dual connect by rownum<=to_date('20190524','yyyymmdd')-to_date('20190501','yyyymmdd')+1
)left join
(
select *
from (select trunc(shijian) shijian, leixing, count(*) totle
from (select leixing, shijian
from table_test1 unpivot(shijian for leixing in (scheduled_time, snatch_time, finish_time, create_time, update_time, finish_pay_time)))
where trunc(shijian) between to_date('20190501','yyyymmdd') and to_date('20190524','yyyymmdd')
group by leixing, trunc(shijian)) pivot(sum(totle) for leixing in ('SNATCH_TIME' SNATCH_TIME, 'CREATE_TIME' CREATE_TIME, 'SCHEDULED_TIME' SCHEDULED_TIME, 'FINISH_TIME' FINISH_TIME, 'FINISH_PAY_TIME' FINISH_PAY_TIME, 'UPDATE_TIME' UPDATE_TIME))
) on time=shijian

order by 1 desc

DH5211314
DH5211314 好的 谢谢
4 个月之前 回复
weixin_45069503
ZJHZ_叶 回复: 连续日期 select date_add(str_to_date('20190501', '%Y%m%d'), interval aa*10+bb day) from (select 0 aa union select 1 union .. union select 9) a, (select 0 bb union select 1 union .. union select 9) b where aa*10+bb<datediff('20190524','20190501') 日期差不确定的话,不太好弄
6 个月之前 回复
weixin_45069503
ZJHZ_叶 回复DH5211314: left join 里大概可以这么写:SELECT time, sum(CASE type WHEN 'CREATE_TIME' THEN totle ELSE 0 END ) CREATE_TIME, sum(CASE type WHEN 'UPDATE_TIME' THEN totle ELSE 0 END ) UPDATE_TIME, sum(CASE type WHEN 'SNATCH_TIME' THEN totle ELSE 0 END ) SNATCH_TIME, sum(CASE type WHEN 'SCHEDULED_TIME' THEN totle ELSE 0 END ) SCHEDULED_TIME, sum(CASE type WHEN 'FINISH_TIME' THEN totle ELSE 0 END ) FINISH_TIME, sum(CASE type WHEN 'FINISH_PAY_TIME' THEN totle ELSE 0 END ) FINISH_PAY_TIME from ( select type,trunc(time) time,count(*) totle from ( select 'SCHEDULED_TIME' type,SCHEDULED_TIME time from table_test1 union all select 'SNATCH_TIME' type,SNATCH_TIME from table_test1 union all select 'FINISH_TIME' type,FINISH_TIME from table_test1 union all select 'CREATE_TIME' type,CREATE_TIME from table_test1 union all select 'UPDATE_TIME' type,UPDATE_TIME from table_test1 union all select 'FINISH_PAY_TIME' type,FINISH_PAY_TIME from table_test1 ) where trunc(time) between to_date('20190501','yyyymmdd') and
6 个月之前 回复
DH5211314
DH5211314 大佬,我用的是MySQL,把这个能改成MySQL的吗 谢谢 啦 大佬
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

11
数据表 一个字段里储存了多个id匹配符合条件id怎么查询?
9
数据库多个表有重复的字段
2
关于sap采购模块后台表字段的问题
3
SQL查询一个表中某个字段值与另一个表中字段值相同的记录
6
SQL查询一个表中某个字段值第一个不连续的记录
1
求助!!怎样在一个表多个不同字段中关联另一个表的一个字段,并显示不同内容
6
mysql 一张超级大表,加字段很慢怎么办
2
thinkphp关联查询如何直接查出关联表的某个字段,并组合成一行数据
4
oracle中怎么把有相同字段的三张表A,B,C关联呢?
2
MySql 通过一个表的字段查另一个表的字段
5
可以用一个表中的特定字段通过id查询另一个表的信息吗?
4
oracle用游标将A表的字段和B表3个字段匹配,匹配到就将B表的三个字段和A表的CODE字段输入到一张新表里面
1
mysql数据库关联查询,包含聚合函数
1
mybatis多表连接查询,多字段排序,排序字段在主表,也在另一张表
2
SQL主表和一个子表关联,现在想取子表的数据写入到子表的4个字段中去,有没有什么好的实现方式呢?
2
SQL联表查询,结果只显示需要的字段
1
.net 如何随机sqlserver一个表的六个id,并把随机出来的id插入到这个表的新字段中
1
关于用一张表的结果更新另一张表字段的问题
1
kettle 记录过滤in list 怎么选择另外一个表中的字段
2
如何匹配匹配两个表的相同字段来为其中一个表的列赋值