首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据表1中事件发生的日期连接2个表,该表位于表2的开始日期和结束日期之间

根据表1中事件发生的日期连接2个表,该表位于表2的开始日期和结束日期之间
EN

Stack Overflow用户
提问于 2014-04-25 18:10:55
回答 3查看 242关注 0票数 0

我有两张桌子。

TableA包含

EventID,Date,Manager

TableB包含

经理,部门,日期开始,日期结束。

在TableB中,管理人员经常切换部门,因此查看条目如下

Manager1,塔尔萨,1-1-2012,6-1-2012

爱荷华市Manager1,6-2-2012,12-31-2012

是意料之中的。

我希望根据事件发生时经理所在的部门将每个EventID分配给一个部门。

所以,例如,TableA

000001,2-1-2012,Manager1

我想要000001的回报,图尔萨

如果TableA有

000002,8-1-2012,Manager1

我想要000001,爱荷华城

更新: user2034570的解决方案奏效了!谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-25 18:32:51

您需要在FK上加入并在WHERE子句中使用

选择A.EventID,B.Department从TableA A内部连接TableB B ON A.Manager = B.Manager,其中A.Date在B.DateStarted和B.DateEnded之间

票数 0
EN

Stack Overflow用户

发布于 2014-04-25 18:15:26

代码语言:javascript
复制
Select Max(EventID),Date, Manager From TableA Group By Date, Manager
票数 0
EN

Stack Overflow用户

发布于 2014-04-25 18:37:24

假设您有两个这样的表:

代码语言:javascript
复制
CREATE TABLE Event(EventID INT, Dates DATE, ManagerName NVARCHAR(20))

CREATE TABLE Manager (ManagerName NVARCHAR(20), Department NVARCHAR(20),
                      DateStarted DATE, DateEnded DATE)

以及其中所载的数据(如你所提供的):

插入事件值(1,'2014-03-25','Manager1')

代码语言:javascript
复制
INSERT INTO Manager VALUES('Manager1', 'Tulsa', '2014-03-25', '2014-03-28')
INSERT INTO Manager VALUES('Manager1', 'Iowa City', '2014-01-25', '2014-02-25')

然后,要获得所要查找的数据类型,您必须按如下方式构建查询:

代码语言:javascript
复制
SELECT          event.EventID,
                manager.Department
FROM            Manager manager
INNER JOIN      Event event ON manager.ManagerName = event.ManagerName
WHERE           manager.DateStarted = '2014-03-25'

您可以在这里查看这个:http://sqlfiddle.com/#!3/612e6/2

您也可以将此查询框为:

代码语言:javascript
复制
SELECT          event.EventID,
                manager.Department
FROM            Manager manager
INNER JOIN      Event event ON manager.ManagerName = event.ManagerName
WHERE           event.Dates BETWEEN manager.DateStarted AND manager.DateEnded

您可以在这里查看这个:http://sqlfiddle.com/#!3/612e6/3

你可以用这两种中的任何一种适合你的需要。

这两种方法都会获得以下结果:

代码语言:javascript
复制
EventID            Department
1               Tulsa

希望这会有帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23300139

复制
相关文章

相似问题

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