Fórum Dúvida Com Select #48595
26/12/2004
0
Na tabela detalhe_vendas tenho os itens que foram vendidos, e na tabela resumo_vendas tenho os dados da venda como número data etc..
elas se relacionam pelo campo num_resumo.
select produtos.descricao,sum(detalhe_vendas.valor_total) from detalhe_vendas,produtos,resumo_vendas where produtos.cod_barras=detalhe_vendas.cod_produto and detalhe_vendas.num_resumo=resumo_vendas.num_resumo group by produtos.descricao
Gostaria de selecionar os itens da tabela detalhe_vendas quando a data de venda na tabela resumo_vendas estiver entre o periodo solicitado.
Meu campo data é do tipo timestamp
Tentei fazer a select do jeito abaixo e não deu certo:
select produtos.descricao,sum(detalhe_vendas.valor_total), cast(resumo_vendas.data_hora as date) from detalhe_vendas,produtos,resumo_vendas where produtos.cod_barras=detalhe_vendas.cod_produto and detalhe_vendas.num_resumo=resumo_vendas.num_resumo and cast(resumo_vendas.data_hora as date)between ´10/11/2004´ and ´10/11/2004´ group by produtos.descricao
quando faço isso me da o seguinte erro:
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)
Se alguem puder me ajudar eu agradeço
Obrigado
Gameiro
Curtir tópico
+ 0Posts
26/12/2004
Gameiro
select cast(resumo_vendas.data_hora as date) ,produtos.descricao,sum(detalhe_vendas.valor_total) from detalhe_vendas,produtos,resumo_vendas where produtos.cod_barras=detalhe_vendas.cod_produto and detalhe_vendas.num_resumo=resumo_vendas.num_resumo and cast(resumo_vendas.data_hora as date)between ´12/23/2004´ and ´12/24/2004´ group by 1,2
Só que ele so usasse a data para selecionar e que agrupasse por produto.descricao.
Se eu tiro algum do agrupamentos acima da erro:
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)
Obrigado
Gostei + 0
27/12/2004
Emerson Nascimento
select produtos.descricao,
cast(resumo_vendas.data_hora as date),
sum(detalhe_vendas.valor_total)
from detalhe_vendas, produtos, resumo_vendas
where produtos.cod_barras=detalhe_vendas.cod_produto
and detalhe_vendas.num_resumo=resumo_vendas.num_resumo
and resumo_vendas.data_hora between ´23.12.2004´ and ´24.12.2004´
group by produtos.descricao
deveria funcionar normalmente, a não ser que o campo descrição seja do tipo BLOB. se for, tente agrupar pelo código do produto:
select max(produtos.descricao),
cast(resumo_vendas.data_hora as date), // pq o cast?
sum(detalhe_vendas.valor_total)
from detalhe_vendas, produtos, resumo_vendas
where produtos.cod_barras=detalhe_vendas.cod_produto
and detalhe_vendas.num_resumo=resumo_vendas.num_resumo
and resumo_vendas.data_hora between ´23.12.2004´ and ´24.12.2004´
group by produtos.cod_barras
Gostei + 0
27/12/2004
Gameiro
Valeu e até mais.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)