SQL中的重复数据删除联系人。两个数据库。选择语句,连接和#TempTables

时间:2014-05-29 19:30:18

标签: sql sql-server

好的,所以两个数据库是人和公司。

- 在Person.Pers_FirstName

中选择没有全部大写的联系人

- 选择值为null的Company.Comp_companycode(未分配公司代码。)

我需要在Person.Pers_CompanyID = Company.Comp_CompanyID

上将它们连接在一起

在我拥有之后,我需要能够看到结果,然后删除它们。我在结果中需要能够看到的字段是Person.Pers_FirstNAme和Person.Pers_LastName

这是我到目前为止所拥有的

Select * from Person where Pers_FirstName != upper(Pers_FirstName) 
collate SQL_Latin1_General_CP1_CS_AS
into #TempTable1
select * from Company where comp_customernumber is null into #TempTable2

From #TempTable1, TempTable2
select #TempTable1.Pers_CompanyId, #TempTable2.Comp_CompanyId  FROM dbo.#TempTable1
inner join dbo.#tempTable2 ON #TempTable1.Pers_CompanyID=#TempTable2.Comp_CompanyID

我的INTO命令同时出现错误。当然,第二块代码 引用#temptable1和#temptable2无法定位。


Select * 
into #TempTable1
from Person 
where Pers_FirstName != upper(Pers_FirstName) 
collate SQL_Latin1_General_CP1_CS_AS

select *  
into #TempTable2
from Company 
where comp_customernumber is null


select Comp_CompanyId  FROM #TempTable2
inner join dbo.#tempTable1 ON #TempTable1.Pers_CompanyID=#TempTable2.Comp_CompanyID

SQL没有看到我的#temptable1或#temptable2

1 个答案:

答案 0 :(得分:1)

正确的语法是

SELECT * INTO #Temp FROM Table;

在你的情况下:

Select * 
into #TempTable1
from Person 
where Pers_FirstName != upper(Pers_FirstName) 
collate SQL_Latin1_General_CP1_CS_AS

select *  
into #TempTable2
from Company 
where comp_customernumber is null

编辑:添加选择语句

select t1.Pers_CompanyId, t2.Comp_CompanyId  
FROM #TempTable1 t1
    inner join #tempTable2 t2 
        ON t1.Pers_CompanyID=t2.Comp_CompanyID

EDIT2:如何删除临时表

你需要在

之前运行它
IF OBJECT_ID('tempdb.dbo.#tempTable2 ', 'U') IS NOT NULL
  DROP TABLE #tempTable2 


IF OBJECT_ID('tempdb.dbo.#tempTable1 ', 'U') IS NOT NULL
  DROP TABLE #tempTable1