作者cutekid (可爱小孩子)
看板Database
标题Re: [SQL ] 显示连续时间
时间Tue Nov 17 12:36:21 2015
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次
: ,组了半天,组到头脑打结了,还麻烦指导了,谢谢帮忙。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.221.80.36
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1447734984.A.EF2.html
※ 编辑: cutekid (61.221.80.36), 11/17/2015 13:19:03