下面是我的表格结构(足以显示我需要完成的内容)的一小段代码,并且我无法获得正确的语法来实现我的最终结果。我需要完成的是显示来自#newdatabase的所有记录(这是简单的部分,一个select *语句),并且如果#olddatabase中存在记录,只有在雇员姓名为null时,才会排除它。我试过这个查询,但没有返回结果集。使用在哪里加入?
Select #newdatabase.orderID
FROM #newdatabase
LEFT JOIN #oldDatabase
ON #oldDatabase.orderID = #newdatabase.oldorderID
WHERE #oldDatabase.orderID IS NULL
AND #oldDatabase.employeename IS NULL
这里是我的表结构
Create Table #oldDatabase
(
orderID int,
employeename varchar(100)
)
Create Table #newdatabase
(
orderID int,
oldorderID int
)
INSERT INTO #oldDatabase Values
(1, NULL),(2, NULL),(3, 'Mitch'),(4,'Sam'),(5, 'Streith'),(6, 'Azul'),(7,'Reta'),(8,'Frank'),(9,'Fred'),(10,'Nick'),
(11, NULL),(12, NULL),(13, NULL), (14, NULL), (15, NULL), (16, NULL)
INSERT INTO #newdatabase Values
(100,1), (101,2), (102,3), (103,4), (104,5), (105,6), (106,7), (107,8), (108,9),
(109,10), (110,11), (111,12), (112,13), (113,Null),(114,Null), (115,NULL), (116,NULL),
(117,Null), (118,Null), (119,Null), (120,Null), (121,Null), (122,Null), (123,Null)
写在前面 - 我想看看在#newdatabase记录,其中:1)他们不#olddatabase存在或2),如果他们在#olddatabase存在, employeename为空。 Des澄清?
要从您发布的示例数据中获得什么结果? (我不确定我是否理解你在找什么,因为你发布的SELECT与你的描述不符。) – 2015-02-10 18:28:19
@KenWhite我想在#newdatabase中看到记录,其中1)它们不存在于#olddatabase中或2)如果它们存在于#olddatabase中并且employeename为null。 Des澄清? – 2015-02-10 18:31:05
请编辑您的文章,并根据您发布的样本数据(在文本列表中)显示您期望得到的确切结果*。你的SQL仍然不符合你的描述,如果你只是简单地发表一个代表你希望从样本数据中得到的结果的表格,那么你很清楚你在问什么。 – 2015-02-10 18:34:29