Como Totalizar Mes a Mes Valores de Um Periodo com Varios Meses.
Ola Boa tarde!!!
Eu Aqui novamente com duvida.
Gostaria de uma ajuda para criar um script onde seja pego as vendas dos meus vendedores e totalizasse separadamente por mes as vendas do periodo informado.
Por exemplo, de 1/1/2011 a 30/6/2011 Periodo informado.
e totalizar separadamente o mes 1, mes 2, mes 3 e assim sucessivamente.
Alguem poderia me dar uma Luz, ainda nao consegui pensar em nada a respeito.
desde ja agradeco.
Abraco.
Alex - Lekao
Alex Lekao
Curtidas 0
Respostas
Emerson Nascimento
01/07/2011
tente assim:
SELECT
CODVEND,
((CAMPODATA - DAY(CAMPODATA)) + 1) MES_ANO,
SUM(VALOR) TOTAL
FROM
TABELA
WHERE
DATA BETWEEN DATAINICIAL AND DATAFINAL
GROUP BY
CODVEND, 2
SELECT
CODVEND,
((CAMPODATA - DAY(CAMPODATA)) + 1) MES_ANO,
SUM(VALOR) TOTAL
FROM
TABELA
WHERE
DATA BETWEEN DATAINICIAL AND DATAFINAL
GROUP BY
CODVEND, 2
GOSTEI 0
Alex Lekao
01/07/2011
Ola Emerson, boa tarde!!!
Obrigado por mais esta ajuda.
Mas nao sei se entendi corretamente o que sugeriu.
O script ficou assim:
select
codven,((datemi - DAY(datemi)) +1) mes_ano,SUM(totgeral) total
from LOJA1.dbo.REQVDA
where datemi between '1.1.11' and '6.30.11'
group by codven,2
O Script me retornou o seguinte erro:
Mensagem 164, Nvel 15, Estado 1, Linha 5
Cada expresso GROUP BY deve conter pelo menos uma coluna que no seja referncia externa.
ai depois tive que agrupar por datemi tambem para nao dar o erro e com isso os dias ficaram agrupados.
desculpe se nao entendi bem o que sugeriu.
mas mesmo assim muito obrigado!!!
Abraco!!!
Alex - Lekao
GOSTEI 0
Emerson Nascimento
01/07/2011
desculpe, o indice do campo só funciona no order by.
tente assim:
select codven, ((datemi - DAY(datemi)) +1) mes_ano, SUM(totgeral) total
from
LOJA1.dbo.REQVDA where
datemi between '1.1.11' and '6.30.11' group by
codven, ((datemi - DAY(datemi)) +1)
order by
codven, 2
tente assim:
select codven, ((datemi - DAY(datemi)) +1) mes_ano, SUM(totgeral) total
from
LOJA1.dbo.REQVDA where
datemi between '1.1.11' and '6.30.11' group by
codven, ((datemi - DAY(datemi)) +1)
order by
codven, 2
GOSTEI 0
Alex Lekao
01/07/2011
Ola Emerson, bom dia!!!
Mais uma vez obrigado, tentei e retornou um erro referente a conversao de data em texto, vou colocar a mensagem abaixo.
Estou vendo o que consigo resolver com relacao ao erro.
Mensagem 242, Nvel 16, Estado 3, Linha 1
A converso de um tipo de dados varchar em um tipo de dados datetime resultou em um valor fora do intervalo.
mais uma vez obrigado!!
Abraco.
Alex - Lekao
GOSTEI 0
Alex Lekao
01/07/2011
Ja consegui resolver a questao da mensage, acredito eu. rsrsr
Estava colocando o ultimo dia com 6.30.11 e ao mudar para 30.6.11 deu certo, acho que era isso.
Mais uma vez obrigado pela ajuda!!!!
ai no caso fiz uma mudanca para apresentar a data no padrao brasileiro, vou colar o script como ficou a seguir.
eh isso ai...
Obrigado novamente.
Abraco.
Alex - Lekao
select
codven,
convert(varchar(10),((datemi - DAY(datemi)) +1),103) mes_ano,
SUM(totgeral) total
from
LOJA1.dbo.REQVDA
where
datemi between '1.1.11' and '30.6.2011'
group by
codven, convert(varchar(10),((datemi - DAY(datemi)) +1),103)
order by
codven, 2
GOSTEI 0
Emerson Nascimento
01/07/2011
blz. coloque o tópico como concluído.
GOSTEI 0