2017-06-22 70 views
0

我已在SQL查詢做一個內之前將SQL數據到臨時表中加入

SELECT MAX(CP2.CounterpartyKey) 
FROM GFRM_STAR2.SDS.Counterparty CP2 
WHERE CP1.Id = CP2.Id 
     AND ISNULL(CP2.EffectiveFromDate, '1900-01-01') <= CONVERT(DATE, '20170620', 112) 

這又是一個SQL查詢中的子查詢,但其餘沒有改變,所以我省略了它下面這個問題

我想要做的是改變這是將我從CP2.CounterpartyKey獲得的數據移動到臨時表中,然後做一個內部連接而不是我現在正在做的事情。

首先我修改了查詢是

SELECT MAX(CP2.CounterpartyKey) 
    INTO #Temp 
    FROM GFRM_STAR2.SDS.Counterparty CP2 
    WHERE CP1.Id = CP2.Id 
      AND ISNULL(CP2.EffectiveFromDate, '1900-01-01') <= CONVERT(DATE, '20170620', 112) 

但是當我跑,我得到以下錯誤:

Incorrect syntax near the keyword 'INTO'

我是新來的SQL和我我不確定爲什麼這樣做會失敗,我的語法看起來正確,但顯然我做錯了。

+0

嘗試給你的MAX()列別名。 –

+1

你也應該告訴我們你正在使用什麼版本的SQL(儘管知道這種味道的人可能很明顯)。 –

回答

1

alias列名稱,因爲臨時表需要一個列名,您將在其中插入

SELECT MAX(CP2.CounterpartyKey) as CounterPartKey 
     into  #Temp 
     FROM GFRM_STAR2.SDS.Counterparty CP2 
     WHERE CP1.Id = CP2.Id 
       AND ISNULL(CP2.EffectiveFromDate, '1900-01-01') <= CONVERT(DATE, '20170620', 112) 
0

此查詢之前,您應該有

create table #Temp (CounterPartyMax int) 

和你做,一定要刪除與

drop table #Temp 
2

使用此而不是之後的命令:

INSERT INTO #Temp 
SELECT MAX(CP2.CounterpartyKey) 
FROM GFRM_STAR2.SDS.Counterparty CP2 
WHERE CP1.Id = CP2.Id 
... 
相關問題