Usuário com melhor resposta
Quey desconto

Pergunta
-
Tenho a seguinte registros de uma tabela
Quando no num_item estiver o valor 991. o campo desconto deverá ser somando com o valor total de de produtos. caso contrario será subtraído do valor total de produtos
usei essa query abaixo
Tipo Cnpj Modelo Serie Nota Cfop Num_Item Cod_Produto Qtd Valor Desconto 54 10867755000141 55 1 321 2102 1 145 279 17982,02 0,02 54 10867755000141 55 1 321 2102 2 131 44 6160 0 54 10867755000141 55 1 321 2102 3 394 143 9308,01 0,01 54 10867755000141 55 1 321 2102 4 276 13 702 0 54 10867755000141 55 1 321 2102 5 1213 5 260 0 54 10867755000141 55 1 321 2102 6 1215 4 208 0 54 10867755000141 55 1 321 2102 7 1214 3 156 0 54 10867755000141 55 1 321 2102 8 457 3 162 0 54 79530622000181 55 1 3172 2102 1 144 140 9912 0 54 79530622000181 55 1 3172 2102 2 146 170 7926,01 0,01 54 79530622000181 55 1 3172 2102 991 0 1 0 465
Respostas
-
Deleted
- Marcado como Resposta gildo_santos quarta-feira, 28 de agosto de 2013 10:50
segunda-feira, 26 de agosto de 2013 19:46
Todas as Respostas
-
-
-
Olá Gildo,
Você fazer assim:
Select Case
when num_item = 991 then (valor + Desconto)
else (valor - Desconto)
end as valor
from <table>
Espero ter ajudado.
Roberto GalvãoMCITP - Administration SQL Server 2008MCITP - Developer SQL Server 2008MCSA - SQL Server 2012Roberto Galvão | MCTS | MCITP | Microsoft Partner |
- Sugerido como Resposta Roberto Galvão segunda-feira, 19 de agosto de 2013 19:12
- Marcado como Resposta Alysson Queiroz quinta-feira, 22 de agosto de 2013 20:24
- Não Marcado como Resposta gildo_santos segunda-feira, 26 de agosto de 2013 16:23
-
Fala, Gildo!
Você já pensou em utilizar os comandos if/else ou case?
Caso seu banco de dados seja SQL Server dê uma olhada neste link: http://www.devmedia.com.br/programando-no-sql-server/22770
Isso pode resolver:
SELECT IdProduto, Nome, Tipo = CASE WHEN 'A' THEN 'Produto Nacional' WHEN 'B' THEN 'Produto dos Estados Unidos' WHEN 'C' THEN 'Produto da China' ELSE 'Produto de outros países' END AS [Tipo do Produto] FROM Produtos
Sócrates Lopes
Mircosoft MTA
socrates@socrateslopes.com.br- Sugerido como Resposta Sócrates Lopes segunda-feira, 19 de agosto de 2013 19:09
-
exatamente desse jeito.. a minha query ainda faz o rateio do valor do desconto pelos items da nota( caso o num_item = 991) senão o valor do desconto vai subtrair com o valor total dos produtos.
With CTE_Frete as
(
select
Nota,
sum(valor) as total,
sum(desconto) as d
from Registro54
group by Nota
)
select
F.nota,
F.valor,
num_item,
desconto,
Valor = ((cte.d * f.valor)/CTE.total)
from Registro54 as F
inner join CTE_Frete as CTE on F.Nota = CTE.Nota
where f.Nota = 3172 -
Olá,
Ficaria assim a sua condição:
With CTE_Frete as
(
select
Nota,
sum(valor) as total,
sum(desconto) as d
from Registro54
group by Nota
)
select
F.nota,
case
when num_item = 991 then (F.valor+desconto)
else (F.valor-desconto)
end as valor,
num_item,
desconto,
Valor = ((cte.d * f.valor)/CTE.total)
from Registro54 as F
inner join CTE_Frete as CTE on F.Nota = CTE.Nota
where f.Nota = 3172espero ter ajudado.
Roberto Galvão | MCTS | MCITP | Microsoft Partner |
- Sugerido como Resposta Roberto Galvão segunda-feira, 19 de agosto de 2013 19:17
- Marcado como Resposta Alysson Queiroz quinta-feira, 22 de agosto de 2013 20:24
- Não Marcado como Resposta gildo_santos segunda-feira, 26 de agosto de 2013 14:53
-
Boa tarde
preciso melhorar o meu script e vou colocar com detalhes o meu problema
- Segue abaixo os dados de uma nota fiscal:
- Valor total da Nota = Somatrio dos Produtos - Desconto( pegar somente os valores de desconto, quanto o Num_item = 999) + rateio do desconto (somatório do desconto quanto o Num_item <> 999, rateando para os produtos tiver NUm-tem = 999
EX: Cod 26729
Valor para ser rateado = 0,09 + 1,41 (valores do Num_item = 999)
rateio = 1,50 * 72(Valor do Item) / 949,98(Valor Total da Nota) = 0,1136866039285038
Valor do item = 0,1136866039285038 (rateio) + 72 ( Valor do Item) - 27,57 ( Valor do Desconto do Item) = 45,9236866039285
---------------------
EX: Cod 295
Valor para ser rateado = 0,09 + 1,41 (somatório valores do Num_item = 999)
rateio = 1,50 * 372(Valor do Item) / 949,98(Valor Total da Nota) = 0,5873807869639361
Valor do item = 0,5873807869639361 (rateio) + 372 ( Valor do Item) - 77 ( Valor do Desconto do Item)= 295,5873807869639
e assim por diante
Prceciso de ajuda