我需要一些帮助,以我需要的方式运行SQL查询。我知道你的sql大师会嘲笑这个,但我真的不知道怎么做:-(
我在MS-SQL数据库中有两个表。一个是工作人员,另一个是合同。它们处于一对多的关系中,即一个工人可以拥有零个或多个合同
合同发生了变化,要求所有工人签订新合同。
我需要得到的是尚未签订新合同的所有工人。那是谁在某个日期之后没有合同。我尝试使用左外连接,但它不起作用:-(
这些是表格中的关键栏目:
工:
WorkerID
名字
姓氏
......
合同:
ContractID
日期
WorkerID
量
......
非常感谢任何帮助
谢谢。
TREX
答案 0 :(得分:3)
select w.WorkerID, w.Firstname, w.LastName
from Workers w
left outer join Contracts c on w.WorkerID = c.WorkerID
and c.Date > @MyDate
where c.WorkerID is null
答案 1 :(得分:0)
使用子查询:
select * from Workers where WorkerID not in
(select distinct WorkerID from Contracts where Date > @myDate)
答案 2 :(得分:0)
坚持使用子查询,但包括日期:
SELECT * from Workers where WorkerID not in
(SELECT DISTINCT WorkerID FROM CONTRACTS WHERE Date > @MyDate)
其中@MyDate是合约更改后的特定日期。