+ -
当前位置:首页 → 问答吧 → 求解:这样的SQL语句如何查询

求解:这样的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语句如何写呢?

作者: 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;

作者: yctcsms   发布时间: 2011-09-27

select sum(endtime-begintime) from (select distinct orderid,endtime,begintime from tbla)

作者: maitianshouwangzhe   发布时间: 2011-09-27