首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正在加入日历表

正在加入日历表
EN

Stack Overflow用户
提问于 2019-03-21 21:41:20
回答 1查看 1.1K关注 0票数 0

我已经创建了一个日历表格(带有索引),其中包含日期、星期几、会计年度、日期名称等。我的日历表格的范围是2005 - 2071年。在查询日程表时,我没有遇到任何问题。

我想使用日历表上的date列来过滤2个不同表上的2个不同的date列。

我遇到的问题是,当使用日程表上的日期列搜索较大的日期范围时(例如,2010-2019),返回结果需要很长时间。然而,如果我在每个表上查询相同的日期范围,结果将以秒为单位返回。下面是我正在使用的查询:

代码语言:javascript
复制
Select 
      a.Col1, 
      a.Col2, 
      a.Col3, 
      a.Date1, 
      b.Date1 
   From 
      TableA as A
         FULL JOIN TableB as B 
            on A.Col1 = B.Col1
            INNER JOIN TableCal as C 
               on A.Date1 = C.Date1 
               or B.Date1 = C.Date1
   WHERE 
      C.date1 between '2010' and '2019'

如果有更好的方式写这篇文章,或者如果我写错了,我愿意接受所有的意见/建议!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-03-21 22:02:42

从形式上讲,答案是使用等值联接,如下所示:

代码语言:javascript
复制
Select a.Col1, a.Col2, a.Col3
From (a join
      cal ca 
      on a.col2 = ca.col2
     ) full join
     (b join
      cal cb
      on b.col2 = cb.col2
     ) 
     on a.col1 = b.col1
where ca.date between '2010' and '2019' or
      cb.date between '2010' and '2019' ;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55281775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档