Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Martinsrj

Subtrair valores inteiros

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.