[DÚVIDA] SELECT

20/07/2009

0

Boa tarde Pessoal, preciso de um select onde o cenario seria esse

Tenho uma tabela com um campo data e valor,

Preciso fazer uma sentença em SQL SERVER que sempre me traga o o valor do mes atual menos o valor do mes passado.


EXEMPLO: Coluna Data (19/06/2009) Coluna Valor(200,00)
(20/07/2009) (300,00)


Aguardo


Vini85

Vini85

Responder

Posts

20/07/2009

Renato Tavares

Olá..!! 8)

Seria + ou - uma coisa assim..!! :wink:

CREATE TABLE #TESTE (DATA DATETIME, VALOR DECIMAL(15,2))

INSERT INTO TESTE VALUES (´2009-05-01´,100.00)
INSERT INTO TESTE VALUES (´2009-06-01´,200.00)
INSERT INTO TESTE VALUES (GETDATE(),300.00)

DECLARE @DATA_ATUAL VARCHAR(1),@VALOR_1 FLOAT, @DATA_ANTERIOR VARCHAR(1), @VALOR_2 FLOAT

SET @DATA_ATUAL = ( SELECTDATEPART(MONTH,DATA) AS MES_ATUAL
FROM TESTE WHERE DATA = (SELECT MAX(DATA) FROM TESTE) )

SET @DATA_ANTERIOR = ( SELECTDATEPART(MONTH,DATA) AS DATA_ANTERIOR
FROM TESTE WHERE DATEPART(MONTH,DATA) = ( SELECT MAX(DATEPART(MONTH,DATA) - 1) FROM TESTE ))

SET @VALOR_1 = ( SELECT SUM(VALOR)
FROM TESTE WHERE DATA = (SELECT MAX(DATA) FROM TESTE) )

SET @VALOR_2 = ( SELECT VALOR
FROM TESTE WHERE DATEPART(MONTH,DATA) = ( SELECT MAX(DATEPART(MONTH,DATA) - 1) FROM TESTE ))

SELECT@DATA_ATUAL AS MES_ATUAL,
@VALOR_1 AS VALOR_ATUAL,
@DATA_ANTERIOR AS MES_ANTERIOR,
@VALOR_2 AS VALOR_ANTERIOR,
@VALOR_1 - @VALOR_2 AS DIFERENCA

um abraço,

Renato


Responder

20/07/2009

Martins

Boa tarde Pessoal, preciso de um select onde o cenario seria esse Tenho uma tabela com um campo data e valor, Preciso fazer uma sentença em SQL SERVER que sempre me traga o o valor do mes atual menos o valor do mes passado. EXEMPLO: Coluna Data (19/06/2009) Coluna Valor(200,00) (20/07/2009) (300,00) Aguardo


Vc já pensou em criar uma SP para isso?

Quer mesmo apenas um select?


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar