Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 483137
            [titulo] => Select para listar vendas com quebra por quinzena
            [dataCadastro] => DateTime Object
                (
                    [date] => 2014-06-20 16:47:40
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 262490
            [status] => A
            [isExample] => 
            [NomeUsuario] => Marisiana Battistella
            [Apelido] => Marisiana
            [Foto] => 262490_20141229171421.jpg
            [Conteudo] => Segue um exemplo...

[code]
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)
[/code]

Fiz isso usando o PostgreSQL, tenta adaptar o código... ) )

Select para listar vendas com quebra por quinzena

Jorge Luiz
   - 20 jun 2014

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

Post mais votado

Marisiana
   - 20 jun 2014

Segue um exemplo...

#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...

Isaac Jose
   - 20 jun 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

Marisiana
   - 22 jun 2014

Jorge Luiz, vc conseguiu criar select?

Jorge Luiz
   - 24 jun 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

Marisiana
   - 24 jun 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...

Marisiana
   - 24 jun 2014

Ah... Obrigada pelo feedback!

Faabiianooc
   - 25 jun 2014

Extract não tem o sql server, pode-se usar datepart, ou month,day,year.

Marisiana
   - 25 jun 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!