Re: [SQL ] 显示连续时间

楼主: cutekid (可爱小孩子)   2015-11-17 12:36:21
select t1.STARTDATE + ' - ' + t1.ENDDATE + ' ' +
t1.STARTTIME + ' - ' + t1.ENDTIME
from A t1 inner join B t2 on
t2.STARTDATE + t2.STARTTIME between t1.STARTDATE + t1.STARTTIME and
t1.ENDDATE + t1.ENDTIME and
t2.ENDDATE + t2.ENDTIME between t1.STARTDATE + t1.STARTTIME and
t1.ENDDATE + t1.ENDTIME
group by t1.STARTDATE,t1.STARTTIME,t1.ENDDATE,t1.ENDTIME,t2.STARTDATE
ps. 如果 table A 遇到凌晨整点答案可能会错:
Ex: 2015-11-12 08:00 2015-11-13 00:00 (X)
Ex: 2015-11-12 08:00 2015-11-12 24:00 (O)
※ 引述《bernachom (Terry)》之铭言:
: 数据库名称:MS 2008R2
: 数据库版本: 2008R2
: 内容/问题描述:
: 不好意思,最近处理比较多SQL上的问题,头脑都有点打结了。
: 我有一个主档
: TABLE A
: 里面有时间字段如下:
: STARTDATE STARTTIME ENDDATE ENDTIME
: 2015-11-12 08:00 2015-11-13 17:00
: 然后还有一个明细字段
: TABLE B,里面就会记录每个小时的拆解
: STARTDATE STARTTIME ENDDATE ENDTIME
: 2015-11-12 08:00 2015-11-12 09:00
: 2015-11-12 09:00 2015-11-12 10:00
: .
: .
: .
: .
: 2015-11-13 16:00 2015-11-13 17:00
: 请教一下,我该如何做才能显示
: [2015-11-12 - 2015-11-13 08:00 - 17:00]
: 重复显示2次呢?
: 因为他有两天 12和13
: 假设,日期是12号到16号,就会显示5次
: ,组了半天,组到头脑打结了,还麻烦指导了,谢谢帮忙。

Links booklink

Contact Us: admin [ a t ] ucptt.com