在SQL中使用Select选择查询和插入

在SQL中使用Select选择查询和插入,sql,sql-server,Sql,Sql Server,我有这样一个select查询: select SUM(Percentage) as SUM, @cnt as Count, (SUM(Percentage) / @cnt) as Percentage from #Temp2 group By RowNumber order by Percentage desc 上述查询的Percentage列如下所示: select SUM(Percentage) as SUM,

我有这样一个select查询:

select 
    SUM(Percentage) as SUM, 
    @cnt as Count, 
    (SUM(Percentage) / @cnt) as Percentage 
from 
    #Temp2 
group By 
    RowNumber 
order by 
    Percentage desc
上述查询的
Percentage
列如下所示:

select 
    SUM(Percentage) as SUM, 
    @cnt as Count, 
    (SUM(Percentage) / @cnt) as Percentage 
from 
    #Temp2 
group By 
    RowNumber 
order by 
    Percentage desc

然后我在上面的查询下面有一个查询:

Update dbo.ResultsStored 
set FinalSearchSeral = @searchNumber, 
    ModifiedAt = getDate(), 
    PercentMatch = t.Perc 
from 
    (select (SUM(Percentage) / @cnt) as Perc 
     from #Temp2 
     GROUP BY RowNumber) t  
where 
    HashedKey = HASHBYTES('MD5', @StringConcat)

select * 
from dbo.ResultsStored 
order by PercentMatch desc
注意:
where
子句在这里不是问题,因为我只想用匹配的hashcode代码更新行

select语句的结果让我感到困惑

上述select语句在百分比列中显示结果,结果如下:

我不明白为什么用上述查询计算的百分比会有不同


但是,第一个查询的结果是正确的,第二个查询的结果是错误的。

结果是预期的,在更新中,您需要指定哪个字段应该从查询中获取哪个值,我的意思是使用
Join
,试试这个(如您在注释中提到的,如果rowid可以是Join列):


在更新中,您需要使用ResultsStored连接查询,连接列将是什么?@Farhęg:RowId列可以是连接列,但我不知道为什么需要这样做,以及为什么上面的查询结果会有差异。好的,我发布了答案。希望对你有帮助。工作很有魅力:)谢谢。