我正在尝试从 #tableA 中删除 #tableB 中不存在的记录。这似乎很简单,但是,我收到了
无法绑定多部分标识符 #TABLEA.MODELNO
即使 tableA 中存在“modelno”列。我遗漏了什么?
DELETE FROM #TABLEA
WHERE EXISTS (SELECT 1 FROM #TABLEB WHERE #TABLEB.MODEL = #TABLEA.MODELNO)
WHERE MODELNO IN()
出于性能原因,我想避免使用。
我正在尝试从 #tableA 中删除 #tableB 中不存在的记录。这似乎很简单,但是,我收到了
无法绑定多部分标识符 #TABLEA.MODELNO
即使 tableA 中存在“modelno”列。我遗漏了什么?
DELETE FROM #TABLEA
WHERE EXISTS (SELECT 1 FROM #TABLEB WHERE #TABLEB.MODEL = #TABLEA.MODELNO)
WHERE MODELNO IN()
出于性能原因,我想避免使用。
我有一个看起来像这样的连接语句:
select
a.Name
a.Year
a.Month
a.Day
b.Price
into #test_table
from #tableA as a
left join #tableB as b on
a.Name = b.Name
and a.Year = b.Year
and a.Month = b.Month
and a.Day = b.Day
但是,在某些情况下,表 B 中可能会缺少月份和/或日期,而我试图找到一种仅联接可用值的方法(例如,当月份和日期为空或空白时,仅联接名称和年份)。我认为 case-when 方法可能是最佳的,但是,当我尝试以下方法时,我得到“'='附近的语法不正确”和“'else'附近的语法不正确”
select
a.Name
a.Year
a.Month
a.Day
b.Price
into #test_table
from #tableA as a
left join #tableB as b on
case when a.Month = '' then a.Name = b.Name and a.Year = b.Year
else a.Name = b.Name and a.Year = b.Year and a.Month = b.Month and a.Day = b.Day
我应该注意,我不想在月份或日期为空/空白时排除记录,但在这种情况下我的加入信心只会降低。有什么建议么?我不确定我错过了什么或如何更好地处理。