嗨, 我有一个加入临时表的临时变量的小问题。任何输入将不胜感激。我按照试图解决问题的顺序提出问题。在临时表格/变量中:将多行连接到只有一行的表格
首先,我有一个从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