Sql server 如何在SQL Server中删除两个表中只有两列比较重复的不重复行

Sql server 如何在SQL Server中删除两个表中只有两列比较重复的不重复行,sql-server,Sql Server,我需要一个存储过程来创建一个基于表a的两列的表,然后检查表B(有5列)中是否有行具有与表a中相同的这两列。不要对它们执行任何操作,删除不重复的行 大概是这样的: Create Procedure DeleteExtra as Create Table #TempTotalHoney ( HarvestDate Date, HoneyType VarChar(50) ) INSERT INTO #TempTotalHoney Select HarvestDate, HoneyType Fro

我需要一个存储过程来创建一个基于
表a
的两列的表,然后检查
表B
(有5列)中是否有行具有与
表a
中相同的这两列。不要对它们执行任何操作,删除不重复的行

大概是这样的:

Create Procedure DeleteExtra

as

Create Table #TempTotalHoney
(
HarvestDate Date,
HoneyType VarChar(50)
)

INSERT INTO #TempTotalHoney
Select HarvestDate, HoneyType
From tHoneyHarvest
Group BY HarvestDate, HoneyType

//until here temptable created as I want, but I don't know how to check
//not duplicated rows, I tried this But it is wrong...

Delete From tHoneyWeight
Where HarvestDate AND HoneyType Not in (select HarvestDate, HoneyType 
From #TempTotalHoney)

//must check these tow columns together not separately  


If(OBJECT_ID('tempdb..#TempTotalHoney') Is Not Null)
Begin
    Drop Table #TempTotalHoney
End
这是我得到的错误:

Msg 4145,第15级,状态1,程序DeleteExtra,第17行
在预期条件的上下文中指定的非布尔型表达式,靠近“AND”

更新:

this is #TempTotalHoney that created from table_A

HarvestDate           HoneyType
---------------------------------------------------
2017-01-10            Pure
2017-01-10            Semi-Pure
2017-02-03            Pure
2017-02-04            artificial 


我希望删除RecID 8和9,即HarvestDate和HoneyType的组合不存在于#Testotalhoney中。

您可以尝试使用下面的查询

DELETE table_B
FROM table_B B
 LEFT JOIN #TempTotalHoney A 
  ON B.HarvestDate = A.HarvestDate 
   AND B.HoneyType = A.HoneyType
WHERE A.HoneyType is Null;

希望这能对您有所帮助。

请提供一些示例数据和该示例数据的预期结果。@Viki888您能再解释一下吗,或者如果可能的话,将其作为答案发布?请在
表a
中提供一些示例数据,
表B
并提供您希望从该示例中获得的结果data@Viki888我更新了问题,因此您是否要从
表B
中删除
RecID 18和19
?我收到以下错误:无法解决“阿拉伯语”和“阿拉伯语”之间的排序冲突在“等于”操作中。您似乎有排序问题。修改
条件,如
和B.HoneyType=A.HoneyType将阿拉伯语校对为
yeees,非常感谢,最后问题解决了,我问了一个问题,因为它仍然没有回答,我不得不用其他解决方案解决它,这导致我这个问题,你刚刚解决了它。你有没有时间看一看,看看有没有更好的方法?这是你正在谈论的问题吗?好的,完成后告诉我。
DELETE table_B
FROM table_B B
 LEFT JOIN #TempTotalHoney A 
  ON B.HarvestDate = A.HarvestDate 
   AND B.HoneyType = A.HoneyType
WHERE A.HoneyType is Null;