我正在尝试为我现在手动执行的操作提供自动化解决方案,而我只有最基本的 SQL 技能。我通常修改其他人已经构建或将构建基本选择查询的简单查询。我已经阅读了一些内容,但不知道在这种情况下如何让它做我需要的。我需要想出一些其他人可以在我外出一个月时使用的东西(这将节省我回来时的时间)。
我需要的是返回下面 tblThree.EndDate 晚于 tblFive.ServiceEnd 的字段。我必须在日期上进行其他一些比较,但如果我得到第一个的有效查询,我可以使它与其他人一起工作。我们使用 MS SQL Server 2008。
我尝试使用别名创建子查询,但在使其工作时惨遭失败。
这些是我正在使用的表和字段:
tblOne.ServiceID
tblOne.ServiceYear
tblOne.Status
tblTwo.AccountNbr
tblTwo.AcctName
tblThree.BeginDate (smalldatetime, null)
tblThree.EndDate (smalldatetime, null)
tblFour.ClientID
tblFour.ServiceName
tblFive.ContractID
tblFive.ServiceBegin (smalldatetime, null)
tblFive.ServiceEnd (smalldatetime, null)
这是表的关联方式:
tblOne.ServiceID = tblThree.ServiceID
tblOne.ContractID = tblFive.ContractID
tblOne.ClientID = tblFour.ClientID
tblTwo.AccountNbr = tblFour.Account
我使用 MS Access 2003 来生成 Join SQL:
SELECT tblOne.ServiceID, tblTwo.AccountNbr,
tblTwo.AcctName, tblFour.ServiceName, tblOne.Status,
tblThree.BeginDate, tblThree.EndDate,
tblOne.ServiceYear, tblFive.ServiceBegin,
tblFive.ServiceEnd
FROM ((tblTwo INNER JOIN tblFour
ON tblTwo.AccountNbr=tblFour.AccountNbr) INNER JOIN (tblThree INNER JOIN tblOne
ON tblThree.ServiceID=tblOne.ServiceID)
ON tblFour.ClientID=tblOne.ClientID) INNER JOIN tblFive
ON tblOne.ContractID=tblFive.ContractID;
谢谢你的帮助。