single row subquery returns more than one row

18/01/2019

0

preciso fazer esta query trabalhar mas ela reclama de muitas linhas no substr

update 
    pcprodut 
set 
    pcprodut.codgenerofiscal = (
                                    select 
                                        substr(pcprodut.codncmex,0,2) 
                                    from 
                                        pcprodut 
                                    where 
                                        pcprodut.codprod in(10889,10890)
                               ) 
where 
    pcprodut.codprod in (10889,10890)
João Teixeira

João Teixeira

Responder

Posts

18/01/2019

Emerson Nascimento

tente assim:
update
    pcprodut 
set
    pcprodut.codgenerofiscal in (
                                    select
                                        substr(pcprodut.codncmex,0,2) 
                                    from
                                        pcprodut 
                                    where
                                        pcprodut.codprod in(10889,10890)
                                    group by 1
                               ) 
where
    pcprodut.codprod in (10889,10890)

note que troquei o sinal de igual pelo operador 'in' e adicionei o group by
Responder

18/01/2019

João Teixeira

tente assim:
update
    pcprodut 
set
    pcprodut.codgenerofiscal in (
                                    select
                                        substr(pcprodut.codncmex,0,2) 
                                    from
                                        pcprodut 
                                    where
                                        pcprodut.codprod in(10889,10890)
                                    group by 1
                               ) 
where
    pcprodut.codprod in (10889,10890)

note que troquei o sinal de igual pelo operador 'in' e adicionei o group by


Consegui resolver usando a seguinte expressão:

update 
    pcprodut 
set 
    pcprodut.status = (substr(pcprodut.codncmex,0,2)) 
where 
    pcprodut.codprod in(varios, codigos, numericos, separados, por, virgula);
commit;
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar