none
Consulta Valores IPI RRS feed

  • 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 T0 

     INNER 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.ItemCode

    Obrigado

    Reinaldo

    • Tipo Alterado Marcos SJ segunda-feira, 18 de janeiro de 2016 13:01 How to
    • Tipo Alterado Marcos SJ segunda-feira, 18 de janeiro de 2016 13:08 Postagem mesclada
    sexta-feira, 15 de janeiro de 2016 13:10

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
    segunda-feira, 18 de janeiro de 2016 18:34

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,cardcode

    Agora 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.167550

    Exibir 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
    domingo, 17 de janeiro de 2016 20:00
  •  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,cardcode

    Agora 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.167550

    Exibir 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

    Obrigado

    Reinaldo

    • Mesclado Marcos SJ segunda-feira, 18 de janeiro de 2016 13:07 Thread duplicada
    segunda-feira, 18 de janeiro de 2016 12:18
  • 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

    segunda-feira, 18 de janeiro de 2016 12:27
  • 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
    segunda-feira, 18 de janeiro de 2016 12:27
  • 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

    segunda-feira, 18 de janeiro de 2016 12:48
  • 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

    segunda-feira, 18 de janeiro de 2016 12:54
  • Reinaldo,

    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)

    esses itens tem valores de impostos diferentes?

    segunda-feira, 18 de janeiro de 2016 13:00
  • 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.000000

    Obrigado

    Reinaldo

    segunda-feira, 18 de janeiro de 2016 13:20
  • Paranhas,

    Não entendi muito bem.

    Você diz usar variáveis na cláusula WHERE?


    Felipe Lauffer MCSA: SQL Server | MCP

    segunda-feira, 18 de janeiro de 2016 13:22
  • Flauffer

    Sim tanto na Where quanto no Select.

    Obrigado

    segunda-feira, 18 de janeiro de 2016 13:24
  • 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.000000

    o 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

    segunda-feira, 18 de janeiro de 2016 13:28
  • 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.000000

    o 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 se o VatSum, tbm so é pra comparar tira ele do Select e do Group By
    segunda-feira, 18 de janeiro de 2016 13:34
  • 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

    segunda-feira, 18 de janeiro de 2016 14:23
  • Flauffer

    Não é o caso dessa consulta, mas para futuras, vou procurar mais como trabalhar com variáveis na geração de relatórios.

    Obrigado

    Reinaldo

    segunda-feira, 18 de janeiro de 2016 15:23
  • 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

    segunda-feira, 18 de janeiro de 2016 17:36
  • 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
    segunda-feira, 18 de janeiro de 2016 18:34
  • 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
    segunda-feira, 18 de janeiro de 2016 18:48
  • Bom dia

    Renato

    Vou refazer essa query utilizar as dicas de vocês e estudar mais.Assim que aparecer os resultados comunico, muito obrigado pela atenção e dicas.

    abs

    quarta-feira, 20 de janeiro de 2016 10:09