子查询返回了多个值(问题)

n3h0vuf2  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(272)

变量@teste有多个解决方案,所以我不能把它们放在一个变量中。我不确定如何执行此子查询。我想抓取公式,只更改某些名称(具有不同的realtv值)。有人能帮我吗?

//table operacao_3//      //table Operacao_1

|nom |RealTV| PrevTV     |   coluna      |    TV
 joao  320     NUll       Dias_Uteia_mes       22   
 luis  100     NUll       Dias_Uteis_Trab      6  
 Joana 50      Null

declare @teste int
declare @div int
set @div = (select (select TV from operacao_1 where coluna = 'dias_uteis_mes')/(select TV from operacao_1 where coluna = 'dias_uteis_trab'))
set @teste =  @div * (select Realtv from operacao_3 where nome = 'joao' and nome = 'luis')
Update operacao_3 set PrevTV = @teste```
q3qa4bjr

q3qa4bjr1#

试试这个,为了我自己的测试目的,我已经缩短了命名,但是你应该可以在

DECLARE @mes INT,
        @trab INT

SELECT @mes = TV FROM Table2 WHERE Coluna = 'mes'
SELECT @trab = TV FROM Table2 WHERE Coluna = 'trab'

UPDATE
    Table1
SET
    PrevTV = (@mes / @trab) * RealTV
WHERE
    Name IN ('Joao', 'Luis')

基本上是这样的:
从表1中,获取名称为{thenames}的所有行,然后对于返回的每一行,将prevtv的值设置为此行的计算结果。
这将用每个人自己的计算值更新每个人,这些值在 WHERE 合同条款 UPDATE

相关问题