Fórum Ajuda com Select - Selecionar UM campo DUAS vezes na mesma linha, mas com nome diferente #418571

15/06/2012

0

TABELA: TAB_PRECOS
CAMPOS: PRODUTO, TABELA e PRECO

Gostaria de fazer um select que trouxesse na mesma linha o campo PRECO duas vezes com nome diferente, dependendo do valor de outro campo (ITEM).

Exemplo
Registro 1:
- PRODUTO = 1
- TABELA = CUSTO
- PRECO = 10,00
Registro 2:
- PRODUTO = 1
- TABELA = VENDA
- PRECO = 20,00
Registro 3:
- PRODUTO = 2
- TABELA = CUSTO
- PRECO = 15,00
Registro 2:
- PRODUTO = 2
- TABELA = VENDA
- PRECO = 30,00


O Select que preciso teria que trazer esses dois registros em apenas uma linha.
Mais ou menos assim:
PRODUTO | PRECO_CUSTO | PRECO_VENDA
1 | 10,00 | 20,00
2 | 15,00 | 30,00

Consegui fazer algo com case, mas ele traz cada registro em duas linhas. Uma com PRECO_CUSTO e outra com PRECO_VENDA.Eu preciso agrupado. Também não posso usar group by por que tem outros campos que precisam ser selecionados que não citei no exemplo para não dificultar o entendimento.

Agradeço qualquer dica.

Obrigado.

Valdir

Valdir Dill

Valdir Dill

Responder

Posts

15/06/2012

Marcelo Augusto

TABELA: TAB_PRECOS
CAMPOS: PRODUTO, TABELA e PRECO

Gostaria de fazer um select que trouxesse na mesma linha o campo PRECO duas vezes com nome diferente, dependendo do valor de outro campo (ITEM).

Exemplo
Registro 1:
- PRODUTO = 1
- TABELA = CUSTO
- PRECO = 10,00
Registro 2:
- PRODUTO = 1
- TABELA = VENDA
- PRECO = 20,00
Registro 3:
- PRODUTO = 2
- TABELA = CUSTO
- PRECO = 15,00
Registro 2:
- PRODUTO = 2
- TABELA = VENDA
- PRECO = 30,00


O Select que preciso teria que trazer esses dois registros em apenas uma linha.
Mais ou menos assim:
PRODUTO | PRECO_CUSTO | PRECO_VENDA
1 | 10,00 | 20,00
2 | 15,00 | 30,00

Consegui fazer algo com case, mas ele traz cada registro em duas linhas. Uma com PRECO_CUSTO e outra com PRECO_VENDA.Eu preciso agrupado. Também não posso usar group by por que tem outros campos que precisam ser selecionados que não citei no exemplo para não dificultar o entendimento.

Agradeço qualquer dica.

Obrigado.

Valdir
Amigo talvez se criasse mais um campo preço em sua tabela não resolveria?
produto a preço1 preço2 preço venda
Responder

Gostei + 0

15/06/2012

Valdir Dill

Obrigado, mas não resolve. O meu SQL é enorme. Não o coloquei aqui para não dificultar o entendimento.

Deixa eu tentar resumir mais um pouco: eu tenho 2 campos (campo1 e campo2) em uma tabela. O que eu quero é que, se campo1 = 1, então mostra traz valor campo2 com nome campovirtual1 e, se campo1 = 2, então mostra traz valor campo2 com nome campovirtual2.
Eu consegui fazer o select com case, mas o campo campovirtual1 vem em uma linha e o campovirtual2 em outra. O que eu gostaria é de ambos na mesma linha, só que em colunas diferntes.

Obrigado.


TABELA: TAB_PRECOS
CAMPOS: PRODUTO, TABELA e PRECO

Gostaria de fazer um select que trouxesse na mesma linha o campo PRECO duas vezes com nome diferente, dependendo do valor de outro campo (ITEM).

Exemplo
Registro 1:
- PRODUTO = 1
- TABELA = CUSTO
- PRECO = 10,00
Registro 2:
- PRODUTO = 1
- TABELA = VENDA
- PRECO = 20,00
Registro 3:
- PRODUTO = 2
- TABELA = CUSTO
- PRECO = 15,00
Registro 2:
- PRODUTO = 2
- TABELA = VENDA
- PRECO = 30,00


O Select que preciso teria que trazer esses dois registros em apenas uma linha.
Mais ou menos assim:
PRODUTO | PRECO_CUSTO | PRECO_VENDA
1 | 10,00 | 20,00
2 | 15,00 | 30,00

Consegui fazer algo com case, mas ele traz cada registro em duas linhas. Uma com PRECO_CUSTO e outra com PRECO_VENDA.Eu preciso agrupado. Também não posso usar group by por que tem outros campos que precisam ser selecionados que não citei no exemplo para não dificultar o entendimento.

Agradeço qualquer dica.

Obrigado.

Valdir
Amigo talvez se criasse mais um campo preço em sua tabela não resolveria?
produto a preço1 preço2 preço venda
Responder

Gostei + 0

30/06/2012

William

Colega acho difícil vc conseguir montar essa consulta, pois vc está concatenando 2 registro que possuem o mesmo codigo, mas querendo fragmentar o campos PRECO.
Responder

Gostei + 0

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

Aceitar