Consulta Avançada

27/09/2010

0

Boa tarde,

Caros colegas, estou com grande problema, preciso fazer uma migração de sistemas, onde vou sair do SQL Server para o Oracle.

Problemas:

Tenho uma tabela de produtos e outra de Código de Barras, tem produtos com vários tamanhos diferentes, Tipo, P,M e G, para cada tamanho tenho um código de Barras diferente, quanto faço a consulta o mesmo produto aparece 3 vezes uma.
Exemplo:

Desc_Produto              Valor                    Cod_Barras

Sandalia                       1,00                     78025
Sandalia                       2,00                     78026
Sandalia                       3,00                     78027

Solução:

Eu preciso fazer um select ou uma procedure que pegue os códigos de barras como se fosse colunas,
Exemplo do Retorno que preciso:

Desc_Produto              Valor                    Cod_Barras          Cod_Barras2           Cod_Barras3

Sandalia                       1,00                     78025                  78026                        78027

Ou seja, transforma linhas em colunas, porque o novo sistema me permite ter vários código de barras para o mesmo produto, mudo somente o tamanho do produto, assim não preciso ter 3 cadastro do mesmo produto, é tudo controlado por grade.

Se alguém tive uma solução eu agradeço.

Obrigado,

Eliézio Mesquita
Eliézio Mesquita

Eliézio Mesquita

Responder

Posts

27/09/2010

Emerson Nascimento

isso é correto? (visto que os valores são diferentes...)
Responder

27/09/2010

Eliézio Mesquita

Ola Emerson, 
É correto sim, pois em uma unica referencia e para cada Tamanho eu posso associar 2 ou mais códigos de barra.
Imagine comigo: 

Referencia = 1020 - Camiseta Masc.   Tamanhos  = P/ M / G
Para cada *tamanho* eu posso cadastrar o meu código de barra interno e também associar o cod. do meu fornecedor. Ou seja, 2 códigos de barras para cada tamanho. 
No momento de retornar os dados o banco esta retornando 6 linhas. Uma para cada código de barra diferente. Eu preciso de saia apenas uma linha por tamanho e se caso encontre 2 códigos para o mesmo tamanho ele retorna em colunas.
Responder

29/09/2010

Emerson Nascimento

creio que isso só podera ser tratado na aplicação.
Responder

29/09/2010

Eliézio Mesquita

Verdade, mas estamos ainda migrando os dados para a nova aplicação.
obrigado,

Eliézio Mesquita
Responder

29/09/2010

Bruno Batista

Boa tarde,

tente da seguinte forma.



SELECT DISTINCT L.DESC_PRODUTO,
             DECODE(L.LINHA,1,L.COD_BARRA,' ') AS COD_BARRA1,
             DECODE(L.LINHA,2,L.COD_BARRA,' ') AS COD_BARRA2,
             DECODE(L.LINHA,3,L.COD_BARRA,' ') AS COD_BARRA3
  FROM (SELECT ROWNUM AS LINHA,
                          P.DESC_PRODUTO,
                          P.COD_BARRA
                FROM TABELA P) L
 ORDER BY L.DESC_PRODUTO


 
Boa tarde,

Caros colegas, estou com grande problema, preciso fazer uma migração de sistemas, onde vou sair do SQL Server para o Oracle.

Problemas:

Tenho uma tabela de produtos e outra de Código de Barras, tem produtos com vários tamanhos diferentes, Tipo, P,M e G, para cada tamanho tenho um código de Barras diferente, quanto faço a consulta o mesmo produto aparece 3 vezes uma.
Exemplo:

Desc_Produto              Valor                    Cod_Barras

Sandalia                       1,00                     78025
Sandalia                       2,00                     78026
Sandalia                       3,00                     78027

Solução:

Eu preciso fazer um select ou uma procedure que pegue os códigos de barras como se fosse colunas,
Exemplo do Retorno que preciso:

Desc_Produto              Valor                    Cod_Barras          Cod_Barras2           Cod_Barras3

Sandalia                       1,00                     78025                  78026                        78027

Ou seja, transforma linhas em colunas, porque o novo sistema me permite ter vários código de barras para o mesmo produto, mudo somente o tamanho do produto, assim não preciso ter 3 cadastro do mesmo produto, é tudo controlado por grade.

Se alguém tive uma solução eu agradeço.

Obrigado,

Eliézio Mesquita
Responder

29/09/2010

Eliézio Mesquita

Bruno

Vou verificar e aviso, obrigado.

Eliezio Mesquita
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar