[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
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)