Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4426 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Pessoal, perdão por enviar essa dúvida aqui, tentei procurar na net mas não encontrei, mas estou com uma dúvida quanto a geração de uma consulta usando firebird, tenho uma tabela de itens venda, nela preciso fazer um select pra gerar o registro tipo 60D e 60I pra atender o requisito VII item 19 (vendas no período), prepciso selecionar todos campos da tabela e agrupar por data, ecf e produto, como fazer?

Olha o exemplo que gostaria que selecionasse:

Data ECF produto qtde total dia valor total do dia icms do dia

08/11/2012 1 produto X 50 500,00 10,00

08/11/2012 1 produto Y 25 100,00 2,00

08/11/2012 1 produto Z 10 1000,00 120,00

Estou tentando usar o seguinte comando sql :

select * from titemvendaecf where dataecf between '11/08/2012' and '11/08/2012' group by codproduto

dá o seguinte erro:

Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

Alguem tem alguma dica pra me ajudar?

Obrigado.

Rafael

Postado

select DATA , CODPRODUTO , sum(CAMPO_VALOR)

FROM TABELA

WHERE DATA >= '00/00/0000' AND DATA <= '00/00/0000'

GROUP BY DATA , CODPRODUTO

Ref a data 00/00/0000 vc informa a data que vc quizer OK , ATÉ O LANCE AI ESTA NO

SELECT ...SUM . toda vez q utiliza o SUM , vc deve fazer o group by . Pelos campos

que vc quer que agrupe / some o valor .

Postado

Olá Adilson,mas o problema está em pegar os demais campos que ficam escondidos, esse é o problema que não consigo resolver, tem como mostrar todos campos da tabela além do agrupamento?

Rafael

Postado

Entao , mais esses campos . podem alterar o valor da soma do agrupamento . o que vc pode fazer , ou é informalos na sequencia

ex:

SELECT DATA , CODPRODUTO , CAMPO1 , CAMPO2 , CAMPO3 , SUM(CAMPO_VALOR1) , SUM(CAMPO_VALOR2)

FROM TABELA

WHERE DATA >= '00/00/0000' AND DATA <= '00/00/0000'

GROUP BY DATA , CODPRODUTO , CAMPO1 , CAMPO2 , CAMPO3

Pra group by . vc nunca vai conseguir usar com * , sempre terá que informar os campos .

Ai o que vc precisa ver é se no informando campo o valor nao soma com por agrupar errado ... ai o que vc

pode fazer, ou criar um stored procedure no Firebird q te resulte o valor , ou vc faz um query com o agrupamento

por dia e codigo do produto e depois faz outra query em seguida com as outras informações que vc precisa ver .

Adilson .

Postado

Ok Obrigado Adilson, mas acho que vou fazer uma "gambiarra" e vou adicionar os campos que necessitam de soma em uma tabela temporaria e depois pegar os demais campos que preciso.

Rafael

  • Este tópico foi criado há 4426 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...