Select para listar vendas com quebra por quinzena
Boa tarde a todos
Eu conheço muito pouco sql e surgiu uma necessidade para mim
Preciso saber quanto vendeu de determinado produto em uma quinzena, e que o select liste mais de uma quinzena
Se fosse uma data só faria assim
select produto,sum(quantidade) AS QUINZENA1
from
vendas
where
dtvenda between '01/06/2014' and '15/06/2014'
group by produto
O resultado é assim
PRODUTO QUINZENA1
SAPATOX 30
SAPATOY 50
Eu preciso listar outras quinzenas, onde nessa quinzena ele não fizesse a conta do dtvenda entre '01/06/2014' até 15/06/2014' mas sim '16/06/2014' até '30/06/2014' por exemplo
O resultado seria assim
PRODUTO QUINZENA1 QUINZENA2
SAPATOX 30 40
SAPATOY 50 30
Dessa forma posso acompanhar o desempenho de um produto em uma faixa de tempo
Alguém poderia me ajudar como posso fazer isso?
Desde já agradeço
Abraço
Eu conheço muito pouco sql e surgiu uma necessidade para mim
Preciso saber quanto vendeu de determinado produto em uma quinzena, e que o select liste mais de uma quinzena
Se fosse uma data só faria assim
select produto,sum(quantidade) AS QUINZENA1
from
vendas
where
dtvenda between '01/06/2014' and '15/06/2014'
group by produto
O resultado é assim
PRODUTO QUINZENA1
SAPATOX 30
SAPATOY 50
Eu preciso listar outras quinzenas, onde nessa quinzena ele não fizesse a conta do dtvenda entre '01/06/2014' até 15/06/2014' mas sim '16/06/2014' até '30/06/2014' por exemplo
O resultado seria assim
PRODUTO QUINZENA1 QUINZENA2
SAPATOX 30 40
SAPATOY 50 30
Dessa forma posso acompanhar o desempenho de um produto em uma faixa de tempo
Alguém poderia me ajudar como posso fazer isso?
Desde já agradeço
Abraço
Jorge Luiz
Curtidas 0
Melhor post
Marisiana Battistella
20/06/2014
Segue um exemplo...
Fiz isso usando o PostgreSQL, tenta adaptar o código...
select extract(year from dt.data_base) as ano, extract(month from dt.data_base) as mês, SUM(CASE WHEN extract(day from dt.data_base) <= 15 THEN fvn.vlvendanota END ) as primeira_quinzena, SUM(CASE WHEN extract(day from dt.data_base) < 15 THEN fvn.vlvendanota END ) as segunda_quinzena from fato_vendanota fvn join dim_tempo dt on fvn.idtempo = dt.idtempo where dt.data_base between '01/01/2014' and '31/05/2014' group by extract(year from dt.data_base), extract(month from dt.data_base) order by extract(year from dt.data_base), extract(month from dt.data_base)
Fiz isso usando o PostgreSQL, tenta adaptar o código...
GOSTEI 1
Mais Respostas
Isaac Jose
20/06/2014
boa tarde ja estou indo embora mais acho que esse ex pode ajudar
att
isaac
select
a.cou1,a.cou2 ,MAX(LIME_CHEQUE_Prod_63)LIME_CHEQUE_Prod_63,MAX(LIME_LIME_Prod_94)LIME_LIME_Prod_94
from (select
LIME_CHEQUE_Prod_63= case when b.tintCodCart = 63 then b.monVlrCart
end,
LIME_LIME_Prod_94 = case when b.tintCodCart = 94 then b.monVlrCart
end,
a.cou1 ,a.cou2
from tb1 a left join
tb2 b on
b.cou1 = a.AG and b.cou2 = a.cou2)a
group by a.cou1,a.cou2
att
isaac
select
a.cou1,a.cou2 ,MAX(LIME_CHEQUE_Prod_63)LIME_CHEQUE_Prod_63,MAX(LIME_LIME_Prod_94)LIME_LIME_Prod_94
from (select
LIME_CHEQUE_Prod_63= case when b.tintCodCart = 63 then b.monVlrCart
end,
LIME_LIME_Prod_94 = case when b.tintCodCart = 94 then b.monVlrCart
end,
a.cou1 ,a.cou2
from tb1 a left join
tb2 b on
b.cou1 = a.AG and b.cou2 = a.cou2)a
group by a.cou1,a.cou2
GOSTEI 0
Marisiana Battistella
20/06/2014
Jorge Luiz, vc conseguiu criar select?
GOSTEI 0
Jorge Luiz
20/06/2014
Boa tarde a todos!
Primeiramente agradeço a ajuda de todos amigos
Marisiana muito obrigado mesmo!
Deu tudo certo, aprendi muito com sua dica
Com o extract eu não consegui fazer, eu uso o sql server 2005 e não sei se o extract não funciona nele
Então mudei os extract para as funções YEAR,MONTH e DAY e deu tudo certo, apenas troquei as tabelas e colunas pelas minhas aqui
Primeiramente agradeço a ajuda de todos amigos
Marisiana muito obrigado mesmo!
Deu tudo certo, aprendi muito com sua dica
Com o extract eu não consegui fazer, eu uso o sql server 2005 e não sei se o extract não funciona nele
Então mudei os extract para as funções YEAR,MONTH e DAY e deu tudo certo, apenas troquei as tabelas e colunas pelas minhas aqui
GOSTEI 0
Marisiana Battistella
20/06/2014
Por nada! Que bom que te ajudou! =D
Eu inclui o extract pra conseguir testar e utilizei a estrutura que tinha em mãos naquele momento... Imaginei que vc teria que adaptar o código, então recorri as funções mais tradicionais que geralmente rodam em todos os SGBDs...
Não conheço o SQLServer, então não sei te dizer se funciona o extract ou não, mas já vi algum conteúdo na web sobre isso... Talvez tenha alguma particularidade na sintaxe...
Eu inclui o extract pra conseguir testar e utilizei a estrutura que tinha em mãos naquele momento... Imaginei que vc teria que adaptar o código, então recorri as funções mais tradicionais que geralmente rodam em todos os SGBDs...
Não conheço o SQLServer, então não sei te dizer se funciona o extract ou não, mas já vi algum conteúdo na web sobre isso... Talvez tenha alguma particularidade na sintaxe...
GOSTEI 0
Marisiana Battistella
20/06/2014
Ah... Obrigada pelo feedback!
GOSTEI 0
Fabiano Carvalho
20/06/2014
Extract não tem o sql server, pode-se usar datepart, ou month,day,year.
GOSTEI 0
Marisiana Battistella
20/06/2014
Ah, é mesmo! Agora lembrei que uma vez pesquisei sobre isso e encontrei exemplos com o datepart.
Não uso o SQLServer, mas, se não me engano fui pesquisar pra tentar ajudar alguém aqui do fórum.. =)
Obrigada Fabiano!
Não uso o SQLServer, mas, se não me engano fui pesquisar pra tentar ajudar alguém aqui do fórum.. =)
Obrigada Fabiano!
GOSTEI 0