select agrupando por mes e ano
05/10/2013
0
preciso de uma ajuda, montar um select do total de vendas agrupado por cliente, produto mes e ano.
resultado teria que ser assim por ex
cliente produto ano qtde jan r$ jan qtde fev r$ fev .... qtde dez r$ dez
201 20 2012 12 300,00 14 340,00 .... 0 0
201 20 2013 7 180,00 2 40,00 .... 0 0
201 57 2012 7 180,00 2 40,00 .... 0 0
e por ai vai.
meu problema não são os extracts por data e mes, mais sim aparecer um mes na frente do outro como preciso acima.
se alguem tiver uma dica agradeço
abraços
Rafael Cruz
Post mais votado
05/10/2013
Select sum(TotalVendas) TotalVendas, cd_cliente, cd_produto, extract(month from current_date) mes, /*Trocar o current_date pelo seu campo*/ extract(month from current_date) ano from tabelas group by cd_cliente, cd_produto, extract(month from current_date), /*Trocar o current_date pelo seu campo*/ extract(month from current_date)
Outros exemplos de manipulação de Data e Hora
select current_date Data, extract(year from current_date) ano, extract(month from current_date) mes, extract(day from current_date) dia, extract(hour from current_time) Hora, extract(Minute from current_time) Minutos, extract(Second from current_time) Segundos from RDB$Database
Abração e bons códigos!!!
Deivison Melo
Mais Posts
05/10/2013
Rafael Cruz
essa idéia é o que estou usando já, mais não é o resultado que estou procurando, como citei no exemplo preciso da soma por mes mais que cada mes aparecesse um na frente do outro
mais valeu pela ajuda amigo
05/10/2013
Deivison Melo
17/10/2013
Thiago Irrazabal
SELECT B.FANTASIA AS NOME_CLIENTE, D.CODIGO AS CODIGO_PRODUTO, IIF(EXTRACT(MONTH FROM A.DEMI) = 1, C.VTOT, 0) AS VALOR_JAN, IIF(EXTRACT(MONTH FROM A.DEMI) = 1, C.QTD, 0) AS QTD_JAN, IIF(EXTRACT(MONTH FROM A.DEMI) = 2, C.VTOT, 0) AS VALOR_FEV, IIF(EXTRACT(MONTH FROM A.DEMI) = 2, C.QTD, 0) AS QTD_FEV, IIF(EXTRACT(MONTH FROM A.DEMI) = 3, C.VTOT, 0) AS VALOR_MAR, IIF(EXTRACT(MONTH FROM A.DEMI) = 3, C.QTD, 0) AS QTD_MAR, IIF(EXTRACT(MONTH FROM A.DEMI) = 4, C.VTOT, 0) AS VALOR_ABR, IIF(EXTRACT(MONTH FROM A.DEMI) = 4, C.QTD, 0) AS QTD_ABR, IIF(EXTRACT(MONTH FROM A.DEMI) = 5, C.VTOT, 0) AS VALOR_MAI, IIF(EXTRACT(MONTH FROM A.DEMI) = 5, C.QTD, 0) AS QTD_MAI, IIF(EXTRACT(MONTH FROM A.DEMI) = 6, C.VTOT, 0) AS VALOR_JUN, IIF(EXTRACT(MONTH FROM A.DEMI) = 6, C.QTD, 0) AS QTD_JUN, IIF(EXTRACT(MONTH FROM A.DEMI) = 7, C.VTOT, 0) AS VALOR_JUL, IIF(EXTRACT(MONTH FROM A.DEMI) = 7, C.QTD, 0) AS QTD_JUL, IIF(EXTRACT(MONTH FROM A.DEMI) = 8, C.VTOT, 0) AS VALOR_AGO, IIF(EXTRACT(MONTH FROM A.DEMI) = 8, C.QTD, 0) AS QTD_AGO, IIF(EXTRACT(MONTH FROM A.DEMI) = 9, C.VTOT, 0) AS VALOR_SET, IIF(EXTRACT(MONTH FROM A.DEMI) = 9, C.QTD, 0) AS QTD_SET, IIF(EXTRACT(MONTH FROM A.DEMI) = 10, C.VTOT, 0) AS VALOR_OUT, IIF(EXTRACT(MONTH FROM A.DEMI) = 10, C.QTD, 0) AS QTD_OUT, IIF(EXTRACT(MONTH FROM A.DEMI) = 11, C.VTOT, 0) AS VALOR_NOV, IIF(EXTRACT(MONTH FROM A.DEMI) = 11, C.QTD, 0) AS QTD_NOV, IIF(EXTRACT(MONTH FROM A.DEMI) = 12, C.VTOT, 0) AS VALOR_DEZ, IIF(EXTRACT(MONTH FROM A.DEMI) = 12, C.QTD, 0) AS QTD_DEZ FROM FATNOT A INNER JOIN CAD_COLABORADOR B ON B.CODIGO = A.COL INNER JOIN FATNOTITEM C ON C.COD = A.COD INNER JOIN CAD_PRODUTO D ON D.CODIGO = C.CPRO GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
Att,
Thiago Irrazabal de Oliveira.
17/10/2013
Rafael Cruz
resolvi meu problema totalizando cada mês num loop e informando no clientdataset dentro de cada mês e ano correspondente, já que preciso das informações dos últimos 24 meses, mais vou fazer os testes usando sua ideia Thiago depois retorno.
Obrigado e bons códigos a todos
17/10/2013
Deivison Melo
Além do IIF:
select iif( c.CONTACT_FIRST = 'Elizabeth', 'EMANOEL', 'DEIVISON' ) VALOR from Customer c
Você pode usar o Decode:
select decode( c.CONTACT_FIRST, 'Elizabeth', 'EMANOEL', 'DEIVISON' ) VALOR from Customer c
Eu prefiro o Decode, mas o importante é que o resultado final seja obtido
de forma satisfatória (seja usando IFF, Decode, CASE ou até mesmo uma
lógica, o importante é observar a performance de cada um dos comandos.
Abração e bons códigos!!
17/11/2017
Reginaldo Souza
com a ajuda que deram ao amigo acima criador do tópico consegui consolidar minha consulta por meses. até ai show de bola porem agora na coluna dos meses gostaria de renomear eles para que 01 ficasse como janeiro, 02 ficasse como fevereiro, e assim por diante...
fiz o seguinte código:
select distinct a.nomemed MEDICO, extract(month from b.dtentr) mes, extract(year from b.dtentr) ano, d.nomefun PROPAGANDISTA, COUNT(case b.qtaprov when 0 then '1' END) AS REJEITADOS, COUNT(case b.qtaprov when 1 then '1' END) AS APROVADOS, sum (case b.qtaprov when 0 then (b.prcobr - b.vrdsc) END) as VALOR_REJEITADO, sum (case b.qtaprov when 1 then (b.prcobr - b.vrdsc) END) as VALOR_APROVADO, COUNT(B.nrorc) AS TOTAL_ORCAMENTOS from fc04000 a, fc15100 b, fc04200 c, fc08000 d where c.cdcon = d.cdcon and c.cdfun = d.cdfun and a.pfcrm = c.pfcrm and a.ufcrm = c.ufcrm and a.nrcrm = c.nrcrm and a.pfcrm = B.pfcrm and a.ufcrm = b.ufcrm and a.nrcrm = b.nrcrm and b.dtentr between :DtInicial and :DtFinal and b.cdfil=75 group by a.nomemed,D.nomefun,extract(month from b.dtentr),extract(year from b.dtentr) order by nomemed ,extract(year from b.dtentr)
no aguardo de uma boa alma pra me dar essa força....
11/01/2018
Evaldo
SELECT
C.CODP AS CODIGO, C.DESCRICAO AS DESC_PRODUTO,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 1, C.QTDE, 0)) AS QTDE_JAN,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 2, C.QTDE, 0)) AS QTDE_FEV,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 3, C.QTDE, 0)) AS QTDE_MAR,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 4, C.QTDE, 0)) AS QTDE_ABR,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 5, C.QTDE, 0)) AS QTDE_MAI,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 6, C.QTDE, 0)) AS QTDE_JUN,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 7, C.QTDE, 0)) AS QTDE_JUL,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 8, C.QTDE, 0)) AS QTDE_AGO,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 9, C.QTDE, 0)) AS QTDE_SET,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 10, C.QTDE, 0)) AS QTDE_OUT,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 11, C.QTDE, 0)) AS QTDE_NOV,
SUM(IIF(EXTRACT(MONTH FROM A.DATAENTREGA) = 12, C.QTDE, 0)) AS QTDE_DEZ
FROM LANCNF1 A
INNER JOIN LANCNF2 C ON C.NLANC = A.NLANC
INNER JOIN PRODUTO P ON P.CODIGO=C.CODP
INNER JOIN TABCFOP F ON F.CODFISCAL=C.CFOP
WHERE a.DATAENTREGA between '01.01.2017' and '31.12.2017' AND F.ATUALIZAR_ESTOQUE= 'True'
AND P.CODFOR = 165 AND A.entrada_saida = 'E'
GROUP BY 1,2
Clique aqui para fazer login e interagir na Comunidade :)