Fórum URGENTE - SUM() Group By #39561

19/10/2003

0

Galera eu tenho um tabela de vendas onde eu tenho que trazer todos as vendas de uma determinda data, com o nome do vendedor, quantidade vendida e valor vendido.

O meu problema é que ele tra vários registros de um mesmo vendedor. ex:

Vendedor | Qtde vendida | Valor total vendido
JOAO 2 10,5
JOAO 3 2,6
MARIA 5 7
MARIA 1 2,5

Eu tento agrupar essas pessoas, mas não consigo. Acho que o problema é o meu campo data, pois neste campo é armazenado a data e a hora do cadastro. Então quando eu mando agrupar por data, como sempre ahora ai ser diferente, ele não agrupa.

Alguém pode me ajudar????


Isac

Isac

Responder

Posts

19/10/2003

Afarias

total para uma data ou intervalo::


select vendedor, sum(qtde), sum(total) from tabela
where data between :data_inicial and :data_final
group by vendedor


se quer agrupar por vendedor e dada, então realmente vc tem q separara a HORA da sua data -- crie uma VIEW contendo um campo só com a parte da data usando::

cast(campo_datahora as date) as campo_data

e então faça o group by na view::

select campo_data, vendedor, sum(qtde), sum(total) from nome_view
where data between :data_inicial and :data_final
group by campo_data, vendedor


isto é necessário apenas no IB ou FB 1.0 pois nessas versões não é permitido agrupar (group by) por função.


T+


Responder

Gostei + 0

19/10/2003

Isac

Prezado AFARIAS,

eu fiz o que vc me falou, criei a VIEW daseguinte forma

create view SoData (data) as select extract(day from datasaida)||´/´||extract(month from datasaida)||´/´||extract(year from datasaida)
from vendas

depois fiz a consulta em cima desta VIEW da seguinte forma:

select d.data, ve.nome, sum(v.quantidade) as qtde, sum(v.quantidade*v.valorunit) as valorvendido
from SoData d, vendedor ve, vendas v
where d.data between :data_inicial and :datafinal and v.codvendedor = ve.codvendedor
group by d.data, ve.nome

Após isso, a query não me retorna erro, mas também não traz nenhum registro como resultado.

Poderia me dizer onde estou errando??


Responder

Gostei + 0

19/10/2003

Afarias

de onde vc tirou isso aqui:::

{ extract(day from datasaida)||´/´||extract(month from datasaida)||´/´||extract(year from datasaida) }


???? eu sugeri q vc fizesse::

cast(campo_datahora as date)


isso q vc tá fazendo ai ´não funciona´ não... o resultado não é uma data e sim um ´string´...


T+


Responder

Gostei + 0

20/10/2003

Isac

Perdao, eu li uma coisa e fiz outra.
Vou fazer o teste quando chegar na empresa, e posto o resultado.

Valeu!!!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar