DUVIDA EM COMO MONTAR UMA SELECT
Olá, amigos, tenho uma situação em que não estou conseguindo resolver, vou tentar descrever para que você possam me ajudar.
Tenho 2 Tabelas:
Digitacao e Movimentacao
Layout da tabela Digitacao
-----------------------------------
NotaFiscal DataEmissao Aliquota PrecoCusto
123 01/01/2012 12,00 18,000
1234 02/01/2012 12,00 18,500
1298 04 /03/2012 18,00 15,000
5437 05/05/2012 18,00 17,000
Layout da tabela Movimentacao
----------------------------------------
Nota Fiscal DataEmissao CodigoProduto
123 01/01/2012 12
1298 04/03/2012 35
1298 04/03/2012 41
123 05/05/2012 35
Então, o que eu preciso é montar uma Select que me retorne o último preço de custo do produto com alÃquota de 12,00 e o último preço de custo do produto com alÃquota de 18,00
Ou seja, por exemplo, o produto com o código 35, teria que me retornar:
Código Produto AlÃquota 12,00 AlÃquota 18,00
35 18,000 15,000
Trabalho com SqlServer.
Até mais.
Tenho 2 Tabelas:
Digitacao e Movimentacao
Layout da tabela Digitacao
-----------------------------------
NotaFiscal DataEmissao Aliquota PrecoCusto
123 01/01/2012 12,00 18,000
1234 02/01/2012 12,00 18,500
1298 04 /03/2012 18,00 15,000
5437 05/05/2012 18,00 17,000
Layout da tabela Movimentacao
----------------------------------------
Nota Fiscal DataEmissao CodigoProduto
123 01/01/2012 12
1298 04/03/2012 35
1298 04/03/2012 41
123 05/05/2012 35
Então, o que eu preciso é montar uma Select que me retorne o último preço de custo do produto com alÃquota de 12,00 e o último preço de custo do produto com alÃquota de 18,00
Ou seja, por exemplo, o produto com o código 35, teria que me retornar:
Código Produto AlÃquota 12,00 AlÃquota 18,00
35 18,000 15,000
Trabalho com SqlServer.
Até mais.
Deixa eu entender
Tabela Digitação é uma tabela que é a entrada de nota?
Tabela movimentação é uma tabela de produtos vendidos?
Tabela Digitação é uma tabela que é a entrada de nota?
Tabela movimentação é uma tabela de produtos vendidos?
SELECT TabelaDigitacao.* AS D, TabelaMovimentacao.* AS M FROM D INNER JOIN M ON D.NotaFiscal = M.NotaFiscal WHERE D.Aliquota=18 AND D.Aliquota=12 ORDER BY M.CodigoProduto ASC
Veja se ajuda
Ou usando o UNION e você terá dois registros
SELECT cod_produot, (SELECT TOP 1 precocusto FROM tabela_digitacao WHERE (notafiscal = tabela_movimento.notafiscal) AND (cod_produto = tabela_movimento.cod_produto) AND (aliquota = 12) ORDER BY data_emissao DESC) AS aliquota_12, (SELECT TOP 1 precocusto FROM tabela_digitacao WHERE (notafiscal = tabela_movimento.notafiscal) AND (cod_produto = tabela_movimento.cod_produto) AND (aliquota = 18) ORDER BY data_emissao DESC) AS aliquota_18 FROM tabela_digitacao WHERE (cod_produto = 35);
Ou usando o UNION e você terá dois registros
SELECT TOP 1 codigo_prouduto, aliquota, precocusto FROM tabela_digitacao WHERE (cod_produto = 35) AND (aliquota = 12) ORDER BY dataemissao DESC
UNION
SELECT TOP 1 codigo_prouduto, aliquota, precocusto FROM tabela_digitacao WHERE (cod_produto = 35) AND (aliquota = 18) ORDER BY dataemissao DESC
Tópico encerrado , respostas não são mais permitidas