在SQL中使用Select选择查询和插入
我有这样一个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
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列可以是连接列,但我不知道为什么需要这样做,以及为什么上面的查询结果会有差异。好的,我发布了答案。希望对你有帮助。工作很有魅力:)谢谢。