求解:这样的SQL语句如何查询
时间:2011-09-27
来源:互联网
有一张表订单表TBLA,字段有
ORDERID,PROID,ENDTIME,BEGINTIME
订单编号,订单商品编号,订单结束时间,订单需求时间
相关记录
ORDERID PROID ENDTIME BEGINTIME
R0502749 P63230415 2011-09-08 9:03:59 2011-09-05 19:20:44
R0502755 P63230415 2011-09-08 9:03:46 2011-09-05 19:21:39
R0502755 P63230030 2011-09-08 9:03:46 2011-09-05 19:21:39
R0502755 P63230133 2011-09-08 9:03:46 2011-09-05 19:21:39
R0502759 P63220049 2011-09-08 9:03:32 2011-09-05 19:22:31
R0502759 P63260018 2011-09-08 9:03:32 2011-09-05 19:22:31
R0502846 P63220239 2011-09-08 9:03:19 2011-09-05 19:40:59
R0502882 P63260018 2011-09-08 9:06:55 2011-09-05 19:48:08
R0502882 P63220144 2011-09-08 9:06:55 2011-09-05 19:48:08
R0502882 P63260284 2011-09-08 9:06:55 2011-09-05 19:48:08
需要计算所有订单的总天数,本来可以直接使用SUM(订单结束时间-订单需求时间),但是这里有个问题,因为该张表里记录了商品的明细,所以会出现相的订单有重复的订单结束时间和订单需求时间。
对于相同的订单编号要求只记录一次时间的差值,这SQL语句如何写呢?
ORDERID,PROID,ENDTIME,BEGINTIME
订单编号,订单商品编号,订单结束时间,订单需求时间
相关记录
ORDERID PROID ENDTIME BEGINTIME
R0502749 P63230415 2011-09-08 9:03:59 2011-09-05 19:20:44
R0502755 P63230415 2011-09-08 9:03:46 2011-09-05 19:21:39
R0502755 P63230030 2011-09-08 9:03:46 2011-09-05 19:21:39
R0502755 P63230133 2011-09-08 9:03:46 2011-09-05 19:21:39
R0502759 P63220049 2011-09-08 9:03:32 2011-09-05 19:22:31
R0502759 P63260018 2011-09-08 9:03:32 2011-09-05 19:22:31
R0502846 P63220239 2011-09-08 9:03:19 2011-09-05 19:40:59
R0502882 P63260018 2011-09-08 9:06:55 2011-09-05 19:48:08
R0502882 P63220144 2011-09-08 9:06:55 2011-09-05 19:48:08
R0502882 P63260284 2011-09-08 9:06:55 2011-09-05 19:48:08
需要计算所有订单的总天数,本来可以直接使用SUM(订单结束时间-订单需求时间),但是这里有个问题,因为该张表里记录了商品的明细,所以会出现相的订单有重复的订单结束时间和订单需求时间。
对于相同的订单编号要求只记录一次时间的差值,这SQL语句如何写呢?
作者: yctcsms 发布时间: 2011-09-27
SQL code
with a as (select distinct orderid,ENDTIME, BEGINTIME from TBLA) select sum(ENDTIME-BEGINTIME) AS all_days from a;
作者: luoyoumou 发布时间: 2011-09-27
没能搞定~呜呜呜呜~~~~
作者: maitianshouwangzhe 发布时间: 2011-09-27
有没有其他的方法呢?
引用 1 楼 luoyoumou 的回复:
SQL code
with a as (select distinct orderid,ENDTIME, BEGINTIME from TBLA)
select sum(ENDTIME-BEGINTIME) AS all_days
from a;
SQL code
with a as (select distinct orderid,ENDTIME, BEGINTIME from TBLA)
select sum(ENDTIME-BEGINTIME) AS all_days
from a;
作者: yctcsms 发布时间: 2011-09-27
select sum(endtime-begintime) from (select distinct orderid,endtime,begintime from tbla)
作者: maitianshouwangzhe 发布时间: 2011-09-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28