嗨, 我有一個加入臨時表的臨時變量的小問題。任何輸入將不勝感激。我按照試圖解決問題的順序提出問題。在臨時表格/變量中:將多行連接到只有一行的表格
首先,我有一個從select語句創建的臨時變量。 變量@enhet有兩行/觀測值(在我的測試文件中,以後就會有更多):
declare @enhet varchar(50)
SELECT @enhet =
A.[EnhetsId]
FROM [StatistikinlamningDataSKL].[dbo].[StatusHistorik] A
inner join (
select [EnhetsId], max(SenastUppdaterad) as SenastDatum
from [StatistikinlamningDataSKL].[dbo].[StatusHistorik]
group by [EnhetsId]
) B
on A.[EnhetsId] = B.[EnhetsId] and A.[SenastUppdaterad] = B.SenastDatum
WHERE [NyStatus] = 4
其次,我想創建一個臨時表,這兩個觀測(1變量)相結合額外的變量對於變量@enhet的獨特觀察值都是相同的。目的是爲變量@enhet設置一個具有唯一值的表格,但其餘部分是相同的。
declare @temp2 table (
EnhetsId varchar(50),
TjanstId Int,
Tabell varchar(50),
Kommentar ntext,
Uppdaterad datetime
)
insert into @temp2 (
EnhetsId, TjanstId, Tabell, Kommentar, Uppdaterad)
values (
@enhet, 1, 'GR_PS09_1', 'KLAR', getdate())
select * from @temp2
的問題是,當我運行該腳本的輸出只有1只來自@ enhet變量的最後一個觀察一行。
有沒有人知道該怎麼辦?我嘗試了很多東西,但由於我是SQL新手,我沒有寫出正確的腳本。任何人都可以將我指向正確的方向嗎?
在此先感謝和問候! :)
變量'@ enhet'不具有2行/意見 - 這是一個標量,並且只能存儲1值。您可以通過在您的第一個代碼塊末尾添加「SELECT @ enhet」來進行驗證。 –
感謝您的回答。我從來沒有想過要查看SELECT @enhet,因爲我在添加「@enhet =」字符串之前查看了輸出。這就是爲什麼我沒有看到問題。你有什麼建議如何使它的工作?我已經嘗試將第一個語句「@enhet」作爲表格而不是(標量)變量,但仍然無法找出合適的腳本來合併兩個臨時表格。 – user2995808