Olá Rafael,

Eu "ainda" tenho uma base 8.1 e infelizmente é isso mesmo, ela não entende o
alias no update.
Às vezes é muito útil alias no update, quebra um galho enorme.

Eu sugiro você colocar o nome da tabela aonde você tá usando a alias.

Atenciosamente,

Rafael Domiciano

2009/7/14 José Mello Júnior <[email protected]>

> Não há motivo para utilizar o aliás no update, pode retirá-lo, veja que em
> momento algum foi necessário a utilização dele nos campos componemttype ou
> mesmo no feature.
>
> []´s
>
> 2009/7/14 Rafael do Nascimento <[email protected]>
>
>> Fala, galera! Eu estou tentando migrar o sistema interno da minha empresa.
>> Um dos arquivos da migração contem o seguinte sql:
>>
>> update pp_product_bomline pbl
>> set componenttype =
>>    (select  (case
>>               when mbl.bomtype = 'O' then 'OP'
>>               when mbl.bomtype in ('1','2','3','4','5','6','7','8','9')
>> then 'VA'
>>               else 'CO'
>>             end)
>>     from m_product_bom mbl, pp_product_bom pb, pp_product_bomline pbl2
>>     where pbl2.pp_product_bomline_id = pbl.pp_product_bomline_id
>>           and pb.m_product_id = mbl.m_product_id
>>           and pbl2.pp_product_bom_id = pb.pp_product_bom_id
>>           and mbl.m_productbom_id = pbl2.m_product_id) ,
>>     feature =
>>    (select  (case
>>               when mbl.bomtype in ('1','2','3','4','5','6','7','8','9')
>>                     then (select name
>>                           from ad_ref_list
>>                           where ad_reference_id = 279
>>                           and value = mbl.bomtype)
>>               else null
>>             end)
>>     from m_product_bom mbl, pp_product_bom pb, pp_product_bomline pbl2
>>     where pbl2.pp_product_bomline_id = pbl.pp_product_bomline_id
>>           and pb.m_product_id = mbl.m_product_id
>>           and pbl2.pp_product_bom_id = pb.pp_product_bom_id
>>           and mbl.m_productbom_id = pbl2.m_product_id)
>> where exists
>>    (select *
>>     from m_product_bom mbl, pp_product_bom pb, pp_product_bomline pbl2
>>     where (mbl.bomtype <> 'P' or pbl2.componenttype <> 'CO')
>>           and pbl2.pp_product_bomline_id = pbl.pp_product_bomline_id
>>           and pb.m_product_id = mbl.m_product_id
>>           and pbl2.pp_product_bom_id = pb.pp_product_bom_id
>>           and mbl.m_productbom_id = pbl2.m_product_id)
>> ;
>>
>> Dá erro de sintaxe na primeira linha reclamando desse "pbl". Pelo visto na
>> 8.1 (que é a que eu tenho) ele não aceita o identificador para a tabela que
>> vai ser atualizada. Eu queria saber se tem algum jeito de eu fazer de outra
>> maneira, de forma que de o mesmo resultado.
>> Estou perguntando pq não sou mto bom de sql e tal..
>>
>> Obrigado,
>>
>> Rafael
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
>
> --
> José de Mello Júnior
> 41.9957-2007
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a