Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, boa noite!
Pessoal com dificuldade em subtrair numeros inteiros em query dos dois ultimos registro de acordo com nome.
Exemplo de tabela:
id nome numero
1 Paulo Leandro 10
2 Paulo Martins 2
3 Ermenegildo 30
4 Paulo Leandro 20
5 Paulo Martins 4
6 Ermenegildo 60
7 Paulo Leandro 30
Preciso subtrair os dois ultimos registros onde o campo nome seja Paulo Leandro.
Seria +- isso.
Alguem teria uma outra forma de fazer?
Select max(numero) - min(numero) as diferenca, nome from
(select top 2 numero, nome from tab_exemplo
where numero = '30' and nome = 'Paulo Leandro' group by nome)
as tb
group by nome
>
verifique se com essa dica você consegue resolver: http://forum.imasters.com.br/index.php?/topic/392856-consulta/page__hl__fajuto__fromsearch__1
senão, poderia explicar melhor e colocar como vai ficar a saída da query
Martins, ainda não entendi o que precisa, coloca como vai ficar o resultado baseado nos dados do primeiro post que passou, ou se aquilo for a saida, posta os dados de entrada, tipo posta o antes e o depois pra um entendimento melhor
Cheers!
Resultado ficaria assim:
diferenca numero
Paulo Leandro 30
>
Martins, ainda não entendi o que precisa, coloca como vai ficar o resultado baseado nos dados do primeiro post que passou, ou se aquilo for a saida, posta os dados de entrada, tipo posta o antes e o depois pra um entendimento melhor
Cheers!
>
Resultado ficaria assim:
diferenca numero
Paulo Leandro 30
mas o registro com 'Paulo Leandro' aparece 3 vezes, se subtrair o valor do ID 7 (30) com os valores dos ID's 1 e 4 (10+20) = (30) o saldo vai ser = 0 (zero)
1 Paulo Leandro 10
4 Paulo Leandro 20
7 Paulo Leandro 30
se for isso é só adicionar o campo numero no group by no seu sql
declare @tab_exemplo table (id int, nome varchar(30), numero int)
insert @tab_exemplo (id, nome, numero) values
(1, 'Paulo Leandro', 10),
(2, 'Paulo Martins', 2),
(3, 'Ermenegildo' , 30),
(4, 'Paulo Leandro', 20),
(5, 'Paulo Martins', 4),
(6, 'Ermenegildo' , 60),
(7, 'Paulo Leandro', 30)
Select max(numero) - min(numero) as diferenca, nome from
(select top 2 numero, nome from @tab_exemplo
where numero = '30' and nome = 'Paulo Leandro' group by numero, nome)
as tb
group by nome
retorna:
diferenca nome
----------- ------------------------------
0 Paulo Leandro
verifique se com essa dica você consegue resolver: http://forum.imasters.com.br/index.php?/topic/392856-consulta/page__hl__fajuto__fromsearch__1
senão, poderia explicar melhor e colocar como vai ficar a saída da query