× Linguagem de Programação ADVPL

Perguntas Ajuda com SQL de agrupamento por mês

Mais
10 anos 10 meses atrás #19889 por clistenis
Pessoal bom dia. Feliz 2014 a todos com muito sucesso, paz e saúde.

Estou com uma dúvida em gerar uma SQL na SD2 para gerar o faturamento pelos itens da nota fiscal de saída por mês.

Porém estou me deparando com problemas no tipo do campo D2_EMISSAO

Seria uma SQL para mostrar o D2_emissao e somar o d2_quant e d2_total (sum(d2_quant) e sum(d2_total) e agrupar por mês.

Mais já tentei de tudo e nada :(

Alguém já passou por isso ?

Meu banco é Oracle 11g

Abração a todos.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 10 meses atrás #19891 por lalberto
VAMOS LÁ, NÃO TESTEI:

SELECT LEFT(D2_EMISSAO,6) REFERENCIA, SUM(D2_QUANT), SUM(D2_TOTAL)
FROM SD2010
WHERE D_E_L_E_T_ = ' '
GROUP BY LEFT(D2_EMISSAO,6)
ORDER BY LEFT(D2_EMISSAO,6)

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 10 meses atrás #19894 por clistenis
Amigo Luiz obrigado pela ajudar, mais deu erro no LEFT.

Consegui fazer da seguinte forma, segue como base de conhecimento para o fórum.

SELECT to_char(to_date(d2_emissao,'YYYYMMDD'),'yyyymm') mes, sum(d2_total) valor,sum(d2_quant) quantidade, d2_grupo grupo
from sd2010
WHERE D2_EMISSAO BETWEEN '20120701' AND '20120731'
AND (SELECT F4_ESTOQUE FROM SF4010 WHERE F4_CODIGO = D2_TES and D_E_L_E_T_ != '*') = 'S'
AND (SELECT F4_DUPLIC FROM SF4010 WHERE F4_CODIGO = D2_TES and D_E_L_E_T_ != '*') = 'S'
and d_e_l_e_t_ != '*'
group by to_char(to_date(d2_emissao,'YYYYMMDD'),'yyyymm'), d2_grupo
order by to_char(to_date(d2_emissao,'YYYYMMDD'),'yyyymm'), d2_grupo

Obrigado.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 10 meses atrás #19896 por leopoldomleal
SELECT [YEAR] AS ano,
SUM(CASE [MONTH] WHEN 1 THEN QUANT ELSE 0 END) AS 'jan',
SUM(CASE [MONTH] WHEN 2 THEN QUANT ELSE 0 END) AS 'fev',
SUM(CASE [MONTH] WHEN 3 THEN QUANT ELSE 0 END) AS 'mar',
SUM(CASE [MONTH] WHEN 4 THEN QUANT ELSE 0 END) AS 'abr',
SUM(CASE [MONTH] WHEN 5 THEN QUANT ELSE 0 END) AS 'mai',
SUM(CASE [MONTH] WHEN 6 THEN QUANT ELSE 0 END) AS 'jun',
SUM(CASE [MONTH] WHEN 7 THEN QUANT ELSE 0 END) AS 'jul',
SUM(CASE [MONTH] WHEN 8 THEN QUANT ELSE 0 END) AS 'ago',
SUM(CASE [MONTH] WHEN 9 THEN QUANT ELSE 0 END) AS 'set',
SUM(CASE [MONTH] WHEN 10 THEN QUANT ELSE 0 END) AS 'out',
SUM(CASE [MONTH] WHEN 11 THEN QUANT ELSE 0 END) AS 'nov',
SUM(CASE [MONTH] WHEN 12 THEN QUANT ELSE 0 END) AS 'dez'
FROM
(
SELECT
YEAR(D2.D2_EMISSAO) AS [YEAR],
MONTH(D2.D2_EMISSAO) AS [MONTH],
ISNULL(SUM(D2_QUANT),0) AS QUANT
FROM SD2010 D2 with (nolock)
JOIN SF4010 F4 with (nolock) ON( F4_FILIAL=D2_FILIAL AND
F4_CODIGO=D2_TES )
WHERE
D2.D_E_L_E_T_ <> '*' AND
F4_DUPLIC = 'S' AND
YEAR(D2_EMISSAO) >= YEAR(GETDATE())-4 AND
D2_QTDEDEV=0
GROUP BY YEAR(D2.D2_EMISSAO), MONTH(D2.D2_EMISSAO)
)T0
GROUP BY [YEAR]

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.115 segundos
Joomla templates by a4joomla