Como Totalizar Mes a Mes Valores de Um Periodo com Varios Meses.
01/07/2011
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
Posts
01/07/2011
Emerson Nascimento
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
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
01/07/2011
Emerson Nascimento
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
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
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
03/07/2011
Emerson Nascimento
blz. coloque o tópico como concluído.