Usuário com melhor resposta
Consulta Valores IPI

Pergunta
-
Bom dia
Por favor, preciso criar um relatório que demonstre valores de Item com IPI e esses item possui 2 tipos de valores de 5% e 15% do mesmo fornecedor. minha dúvida é como identificar esses item no valor de IPI correto cobrado na compra, segue a consulta
SELECT
T1.[ItemCode],T0.[CardName],T2.ItemName,
T2.LastPurPrc as [Último Preço da Compra],T4.TaxRate,((T2.LastPurPrc * T4.TaxRate)/ 100 + T2.LastPurPrc) AS [VLR IPI],
T3.WhsCode,T3.[OnHand], T3.[OnOrder], T2.[frozenFor] AS INATIVO
FROM OPOR T0INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry
INNER JOIN OITM T2 ON T1.ItemCode = T2.ItemCode
INNER JOIN OITW T3 ON T2.ItemCode = T3.ItemCode
inner join PDN4 T4 ON T0.DocEntry = T4.DocEntry
Where ((t3.WhsCode not like '02' and t3.WhsCode not like '03')
and (T0.[CardName] LIKE '%Plastico forte%'
or T0.[CardName] like ' Casa da Ferragem'))
AND (t4.TaxRate like '5.000000' or (T4.TaxRate like '15.000000'))
AND T3.WhsCode NOT LIKE '2' AND T3.WhsCode NOT LIKE '3'
AND T2.frozenFor LIKE 'N'
group by T0.[CardName], T1.[ItemCode],T2.ItemName,T3.[OnHand], T3.[OnOrder], T3.[AvgPrice],
T2.[frozenFor],T2.LastPurPrc,T3.WhsCode,T4.TaxRate
ORDER BY T1.ItemCodeObrigado
Reinaldo
Respostas
-
Cara,
então vamo lá, tenta:
SELECT cardname ,cardcode ,docnum ,t0.DocTotal ,t1.itemcode ,t1.VatSum ,MAX((t1.Price*t1.quantity)*t2.TaxRate /100) as ImpostoIPI FROM opor t0 JOIN por1 t1 on t0.DocEntry=t1.DocEntry JOIN por4 t2 on t1.DocEntry=t2.DocEntry WHERE t1.VatSum not like '0.0%' AND t2.TaxRate not like '0.0%' AND t1.VatSum <> ((t1.Price*t1.quantity)*t2.TaxRate /100) GROUP BY cardname , t1.VatSum , docnum , t0.DocTotal , t1.itemcode , cardcode
- Marcado como Resposta Marcos SJ quarta-feira, 20 de janeiro de 2016 12:21
Todas as Respostas
-
Boa tarde
Srs (as)
Consegui usar uma forma, para descobrir o imposto na compra do item, utilizei duas colunas para isso a VATSUM que me trás o imposto final da compra e a ImpostoIPI que é um Alias que me traz valores de Impostos e alguns estão com o resultado igual da coluna VATSUM
select cardname,cardcode,docnum,t0.DocTotal,t1.itemcode,t1.price,t1.Quantity,t2.Taxrate,t1.VatSum,
(t1.Price*t1.quantity)*t2.TaxRate /100 as ImpostoIPI
from opor t0
join por1 t1 on t0.DocEntry=t1.DocEntry
join por4 t2 on t1.DocEntry=t2.DocEntry
where t1.VatSum not like '0.0%'
and t2.TaxRate not like '0.0%'
group by cardname, t1.VatSum, docnum,t0.DocTotal,t1.itemcode,t1.price,t1.Quantity,t2.Taxrate,cardcodeAgora preciso tirar da minha consulta os resultados da coluna ImpostoIPI que são diferente dos resultados da coluna VATSUM
VatSum ImpostoIPI
79.350000 79.350000
79.350000 95.220000
3.090000 3.090000
3.090000 11.124000
4.890000 4.890000
4.890000 17.604000
8.640000 8.640000
8.640000 31.104000
24.901500 24.901500
24.901500 89.645400
30.167500 30.167550Exibir Assim
VatSum ImpostoIPI
79.350000 79.350000
3.090000 3.090000
4.890000 4.890000
8.640000 8.640000
24.901500 24.901500
30.167500 30.167550
Agora preciso descobrir como fazer essa comparação.
Obrigado
Reinaldo
- Editado PARANHAS domingo, 17 de janeiro de 2016 20:09
-
Bom dia
Por favor, estou criando uma consulta para demonstrar o imposto na compra por produto.
tenho duas colunas a VatSum e a ImpostoIPI que é uma alias, preciso criar um filtro que mostre os valores iguais das duas tabelas, como mostra no exemplo abaixo.
select cardname,cardcode,docnum,t0.DocTotal,t1.itemcode,t1.price,t1.Quantity,t2.Taxrate,t1.VatSum,
(t1.Price*t1.quantity)*t2.TaxRate /100 as ImpostoIPI
from opor t0
join por1 t1 on t0.DocEntry=t1.DocEntry
join por4 t2 on t1.DocEntry=t2.DocEntry
where t1.VatSum not like '0.0%'
and t2.TaxRate not like '0.0%'
group by cardname, t1.VatSum, docnum,t0.DocTotal,t1.itemcode,t1.price,t1.Quantity,t2.Taxrate,cardcodeAgora preciso tirar da minha consulta os resultados da coluna ImpostoIPI que são diferente dos resultados da coluna VATSUM
VatSum ImpostoIPI
79.350000 79.350000
79.350000 95.220000
3.090000 3.090000
3.090000 11.124000
4.890000 4.890000
4.890000 17.604000
8.640000 8.640000
8.640000 31.104000
24.901500 24.901500
24.901500 89.645400
30.167500 30.167550Exibir Assim
VatSum ImpostoIPI
79.350000 79.350000
3.090000 3.090000
4.890000 4.890000
8.640000 8.640000
24.901500 24.901500
30.167500 30.167550Obrigado
Reinaldo
- Mesclado Marcos SJ segunda-feira, 18 de janeiro de 2016 13:07 Thread duplicada
-
Bom dia,
Experimente adicionar a condição abaixo na clausula Where:
and t1.VatSum <> (t1.Price*t1.quantity)*t2.TaxRate /100
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
-
Paranhas,
Você pode realizar o filtro direto na cláusula WHERE mesmo. O único detalhe é que você não vai conseguir referenciar a coluna pelo alias que você criou. Só é possível utilizar os alias de colunas criados na cláusula ORDER BY.
Referência: https://msdn.microsoft.com/pt-br/library/ms176104.aspx?f=255&MSPPError=-2147217396
Segue um exemplo do código de como ficaria:
SELECT cardname ,cardcode ,docnum ,t0.DocTotal ,t1.itemcode ,t1.price ,t1.Quantity ,t2.Taxrate ,t1.VatSum ,(t1.Price*t1.quantity)*t2.TaxRate /100 as ImpostoIPI FROM opor t0 JOIN por1 t1 on t0.DocEntry=t1.DocEntry JOIN por4 t2 on t1.DocEntry=t2.DocEntry WHERE t1.VatSum not like '0.0%' AND t2.TaxRate not like '0.0%' AND t1.VatSum <> ((t1.Price*t1.quantity)*t2.TaxRate /100) GROUP BY cardname , t1.VatSum , docnum , t0.DocTotal , t1.itemcode , t1.price , t1.Quantity , t2.Taxrate , cardcode
Felipe Lauffer MCSA: SQL Server | MCP
- Editado FLauffer segunda-feira, 18 de janeiro de 2016 12:39
-
Bom dia
Gapmex
Muito Obrigado pela ajuda peguei seu código e alterei assim
t1.VatSum = (T0.Price*T0.Quantity)*T2.TaxRate /100, funcionou muito bem.
, agora preciso reduzir a duplicação, já estou usando o group by
existe alguma formula para isso ?
ItemCode Dscription
0230110 FITA DUREX TRANSPARENTE 48 X 50
0250204 REFIL PARA BULE (CX C/600)
0250204 REFIL PARA BULE (CX C/600)
0250205 N CLOCHE OVAL OX (CX C/ 75)
0250205 N CLOCHE OVAL OX (CX C/ 75)
0250205 N CLOCHE OVAL OX (CX C/ 75)
0250205 N CLOCHE OVAL OX (CX C/ 75)
0250234 TAMPA MICROONDAS MARKET 600ML (CX C/200)
0250234 TAMPA MICROONDAS MARKET 600ML (CX C/200)
0250237 BANDEJA MICRO BRANCA 600ML MARKET FUNDO (CX C/200)
0250237 BANDEJA MICRO BRANCA 600ML MARKET FUNDO (CX C/200)
0250237 BANDEJA MICRO BRANCA 600ML MARKET FUNDO (CX C/200)Obrigado
Reinaldo
-
Bom dia
Flauffer
Funcionou muito bem seu código apenas alterei t1.VatSum = (T0.Price*T0.Quantity)*T2.TaxRate /100 , show de bola, uma duvida, posso usar variável ao invés de usar alias, as variáveis é considerado update no banco de dados ?
Obrigado
Reinaldo
-
-
Bom dia
Renato
Por favor
O que me interessa é o valor do imposto referente a cada item, agora sei o valor, mas preciso que mostre apenas um item por coluna, sem repetição, os campos quantity e taxrate utilizei apenas para calculo e não iram fazer parte do relatório. O Imposto é diferenciado de acordo com a quantidade, mas o que importa é que o item 0250205 N é cobrando 5% de IPI sendo preço unitário 25,79 + IPI =27,8
ItemCode Dscription CardName Price Quantity TaxRate VatSum
0250205 N CLOCHE OVAL WACO 25.790000 1000.000000 5.000000 1289.500000
0250205 N CLOCHE OVAL WACO 25.790000 3700.000000 5.000000 4771.150000
0250205 N CLOCHE OVAL WACO 32.000000 800.000000 5.000000 1280.000000
0250205 N CLOCHE OVAL WACO 32.000000 1000.000000 5.000000 1600.000000Obrigado
Reinaldo
-
-
-
Cara
ItemCode Dscription CardName Price Quantity TaxRate VatSum
0250205 N CLOCHE OVAL WACO 25.790000 1000.000000 5.000000 1289.500000
0250205 N CLOCHE OVAL WACO 25.790000 3700.000000 5.000000 4771.150000
0250205 N CLOCHE OVAL WACO 32.000000 800.000000 5.000000 1280.000000
0250205 N CLOCHE OVAL WACO 32.000000 1000.000000 5.000000 1600.000000o resultado ta acontecendo assim, por conta do seu Group By, já que você não precisa do quantity e taxrate, tire do group by
SELECT cardname ,cardcode ,docnum ,t0.DocTotal ,t1.itemcode ,t1.VatSum ,(t1.Price*t1.quantity)*t2.TaxRate /100 as ImpostoIPI FROM opor t0 JOIN por1 t1 on t0.DocEntry=t1.DocEntry JOIN por4 t2 on t1.DocEntry=t2.DocEntry WHERE t1.VatSum not like '0.0%' AND t2.TaxRate not like '0.0%' AND t1.VatSum <> ((t1.Price*t1.quantity)*t2.TaxRate /100) GROUP BY cardname , t1.VatSum , docnum , t0.DocTotal , t1.itemcode , cardcode
tenta isso e mostra o resultado -
Cara
ItemCode Dscription CardName Price Quantity TaxRate VatSum
0250205 N CLOCHE OVAL WACO 25.790000 1000.000000 5.000000 1289.500000
0250205 N CLOCHE OVAL WACO 25.790000 3700.000000 5.000000 4771.150000
0250205 N CLOCHE OVAL WACO 32.000000 800.000000 5.000000 1280.000000
0250205 N CLOCHE OVAL WACO 32.000000 1000.000000 5.000000 1600.000000o resultado ta acontecendo assim, por conta do seu Group By, já que você não precisa do quantity e taxrate, tire do group by
SELECT cardname ,cardcode ,docnum ,t0.DocTotal ,t1.itemcode ,t1.VatSum ,(t1.Price*t1.quantity)*t2.TaxRate /100 as ImpostoIPI FROM opor t0 JOIN por1 t1 on t0.DocEntry=t1.DocEntry JOIN por4 t2 on t1.DocEntry=t2.DocEntry WHERE t1.VatSum not like '0.0%' AND t2.TaxRate not like '0.0%' AND t1.VatSum <> ((t1.Price*t1.quantity)*t2.TaxRate /100) GROUP BY cardname , t1.VatSum , docnum , t0.DocTotal , t1.itemcode , cardcode
tenta isso e mostra o resultado -
Paranhas,
Pode utilizar variáveis para retornar valores na cláusula SELECT.
Na cláusula WHERE você também consegue utilizar variáveis, mas ela já deve ter o seu valor definido anteriormente para você conseguir realizar o filtro de forma adequada.
Acredito que não seja este o seu caso.
Felipe Lauffer MCSA: SQL Server | MCP
-
-
Renato
Tirei as colunas do select e group by e mesmo assim continua a duplicação que está vindo por conta do alias ImpostoIPI
estou tentando criar uma condição onde aponto para a coluna Itemcode e faça ela escolher o maior numero da coluna impostoIPI, isso reduziria a quantidade de item duplicado.
assim:
Agora esta assim
ItemCode ImpostoIPI
025025 N 23600
025025 N 1900
032026 5050
032026 3003
0425026 1000
0425026 5000
Preciso que seja assim
ItemCode ImpostoIPI
025025 N 23600
032026 5050
0425026 5000
Obrigado
Reinaldo
-
Cara,
então vamo lá, tenta:
SELECT cardname ,cardcode ,docnum ,t0.DocTotal ,t1.itemcode ,t1.VatSum ,MAX((t1.Price*t1.quantity)*t2.TaxRate /100) as ImpostoIPI FROM opor t0 JOIN por1 t1 on t0.DocEntry=t1.DocEntry JOIN por4 t2 on t1.DocEntry=t2.DocEntry WHERE t1.VatSum not like '0.0%' AND t2.TaxRate not like '0.0%' AND t1.VatSum <> ((t1.Price*t1.quantity)*t2.TaxRate /100) GROUP BY cardname , t1.VatSum , docnum , t0.DocTotal , t1.itemcode , cardcode
- Marcado como Resposta Marcos SJ quarta-feira, 20 de janeiro de 2016 12:21
-
Cara,
então vamo lá, tenta:
SELECT cardname ,cardcode ,docnum ,t0.DocTotal ,t1.itemcode ,t1.VatSum ,MAX((t1.Price*t1.quantity)*t2.TaxRate /100) as ImpostoIPI FROM opor t0 JOIN por1 t1 on t0.DocEntry=t1.DocEntry JOIN por4 t2 on t1.DocEntry=t2.DocEntry WHERE t1.VatSum not like '0.0%' AND t2.TaxRate not like '0.0%' AND t1.VatSum <> ((t1.Price*t1.quantity)*t2.TaxRate /100) GROUP BY cardname , t1.VatSum , docnum , t0.DocTotal , t1.itemcode , cardcode
esqueci de tirar o vatsum do select e do group by -