Fórum Somar valor dos ultimos 12 meses sql #449548
26/07/2013
0
Bom dia pessoa,
Estou com o seguinte problema aqui.
Precisso somar os valores de um determinado periodo para cada data.
Exemplo:
Tenho na minha tabela os seguintes campos:
data | valor
01.01.2003 | 1,25
01.02.2003 | 1,08
01.03.2003 | 0,88
01.01.2004 | 1,26
01.02.2004 | 2,26
Com centenas de datas.
preciso agregar(somar) para cada data o valor dos ultimos doze meses,ultimos 6 meses e 3 meses.
Exemplo:
para a data 01.01.2004 eu tenho que somar o valor de 01.01.2003 até 01.01.2004 assim por diante.....
isso para cada lina da tabela...
alguém pode ajudar?
Estou com o seguinte problema aqui.
Precisso somar os valores de um determinado periodo para cada data.
Exemplo:
Tenho na minha tabela os seguintes campos:
data | valor
01.01.2003 | 1,25
01.02.2003 | 1,08
01.03.2003 | 0,88
01.01.2004 | 1,26
01.02.2004 | 2,26
Com centenas de datas.
preciso agregar(somar) para cada data o valor dos ultimos doze meses,ultimos 6 meses e 3 meses.
Exemplo:
para a data 01.01.2004 eu tenho que somar o valor de 01.01.2003 até 01.01.2004 assim por diante.....
isso para cada lina da tabela...
alguém pode ajudar?
Eduardo Silva
Curtir tópico
+ 0
Responder
Posts
30/07/2013
Jair N.
Boa Tarde já fez algo assim:
SELECT myTabela.data
, (SELECT SUM(sqyTabela.valor)
FROM tabela sqyTabela
WHERE (sqyTabela.data <= myTabela.data)
AND (sqyTabela.data BETWEEN '01.01.2003' AND '01.01.2004')
) AS vlrTotal
FROM Tabela myTabela
WHERE (myTabela.data BETWEEN '01.01.2003' AND '01.01.2004')
GROUP BY myTabela.data
ORDER BY myTabela.data
SELECT myTabela.data
, (SELECT SUM(sqyTabela.valor)
FROM tabela sqyTabela
WHERE (sqyTabela.data <= myTabela.data)
AND (sqyTabela.data BETWEEN '01.01.2003' AND '01.01.2004')
) AS vlrTotal
FROM Tabela myTabela
WHERE (myTabela.data BETWEEN '01.01.2003' AND '01.01.2004')
GROUP BY myTabela.data
ORDER BY myTabela.data
Bom dia pessoa,
Estou com o seguinte problema aqui.
Precisso somar os valores de um determinado periodo para cada data.
Exemplo:
Tenho na minha tabela os seguintes campos:
data | valor
01.01.2003 | 1,25
01.02.2003 | 1,08
01.03.2003 | 0,88
01.01.2004 | 1,26
01.02.2004 | 2,26
Com centenas de datas.
preciso agregar(somar) para cada data o valor dos ultimos doze meses,ultimos 6 meses e 3 meses.
Exemplo:
para a data 01.01.2004 eu tenho que somar o valor de 01.01.2003 até 01.01.2004 assim por diante.....
isso para cada lina da tabela...
alguém pode ajudar?
Estou com o seguinte problema aqui.
Precisso somar os valores de um determinado periodo para cada data.
Exemplo:
Tenho na minha tabela os seguintes campos:
data | valor
01.01.2003 | 1,25
01.02.2003 | 1,08
01.03.2003 | 0,88
01.01.2004 | 1,26
01.02.2004 | 2,26
Com centenas de datas.
preciso agregar(somar) para cada data o valor dos ultimos doze meses,ultimos 6 meses e 3 meses.
Exemplo:
para a data 01.01.2004 eu tenho que somar o valor de 01.01.2003 até 01.01.2004 assim por diante.....
isso para cada lina da tabela...
alguém pode ajudar?
Responder
Gostei + 0
30/07/2013
Eduardo Silva
Opá tudo bem...eu resolvi assim
SELECT sk_metadados, valdata, valvalor,
(SELECT Sum(valvalor) FROM valor_periodo vp
WHERE vp.valdata BETWEEN vp1.valdata-365 AND vp1.valdata
AND sk_metadados =23805 ) soma12mesesantes,
(SELECT Sum(valvalor) FROM valor_periodo vp
WHERE vp.valdata BETWEEN vp1.valdata-365 AND vp1.valdata
AND sk_metadados =23805 ) soma12mesesantes,
(SELECT Sum(valvalor) FROM valor_periodo vp
WHERE vp.valdata BETWEEN vp1.valdata-182 AND vp1.valdata
AND sk_metadados =23805 ) soma6mesesantes ,
(SELECT Sum(valvalor) FROM valor_periodo vp
WHERE vp.valdata BETWEEN vp1.valdata-91 AND vp1.valdata
AND sk_metadados =23805 ) soma3mesesantes
FROM valor_periodo vp1
WHERE sk_metadados =23805
Agora preciso dividir pelo valor relativo, tipo assim.
pegar a soma de janeiro de 2003 e dividir pela soma de janeiro de 2002.
SELECT sk_metadados, valdata, valvalor,
(SELECT Sum(valvalor) FROM valor_periodo vp
WHERE vp.valdata BETWEEN vp1.valdata-365 AND vp1.valdata
AND sk_metadados =23805 ) soma12mesesantes,
(SELECT Sum(valvalor) FROM valor_periodo vp
WHERE vp.valdata BETWEEN vp1.valdata-365 AND vp1.valdata
AND sk_metadados =23805 ) soma12mesesantes,
(SELECT Sum(valvalor) FROM valor_periodo vp
WHERE vp.valdata BETWEEN vp1.valdata-182 AND vp1.valdata
AND sk_metadados =23805 ) soma6mesesantes ,
(SELECT Sum(valvalor) FROM valor_periodo vp
WHERE vp.valdata BETWEEN vp1.valdata-91 AND vp1.valdata
AND sk_metadados =23805 ) soma3mesesantes
FROM valor_periodo vp1
WHERE sk_metadados =23805
Agora preciso dividir pelo valor relativo, tipo assim.
pegar a soma de janeiro de 2003 e dividir pela soma de janeiro de 2002.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)