kamidaki 0 Denunciar post Postado Outubro 24, 2013 Minha dúvida é que tenho um dado que precisa ser agrupado para soma porém não deve ser considerado a data de entrada do itempor ex:item data entrada valor1 01/01/2013 1001 02/01/2013 2001 03/03/2013 600 sum() = 1200só que quero que ele me de esse resultado e quero utilizar a data de entrada com between para pesquisa. Só que quando eu eu agrupo tenho que colocar o campo data no agrupamento e o resultado sai assimitem data entrada valor soma1 01/01/2013 100 12001 02/01/2013 200 12001 03/03/2013 600 1200preciso que aparece assimitem valor1 1200necessito da data apenas para filtro e não para aparecer na minha viewalguém sabe uma solução? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 24, 2013 Não basta algo como ... create or replace view as select item, sum(valor) where data between to_date('01012013','ddmmyyy') and sysdate group by item ?? Todavia publica a query, não sei se entendi o problema. Compartilhar este post Link para o post Compartilhar em outros sites
kamidaki 0 Denunciar post Postado Outubro 24, 2013 Não basta algo como ... create or replace view as select item, sum(valor) where data between to_date('01012013','ddmmyyy') and sysdate group by item ?? Todavia publica a query, não sei se entendi o problema. mas meu caso eu precisaria dar um select na data também, porque minha view é para ser utilizada em ferramenta de Report....então o between dou na aplicação e não dentro da própria view... só que se eu colocar a data no select sou obrigado a mandar agrupar no group by....se eu fizer isso vai aparecer vários itens como no exemplo que dei, e na verdade quero que apareça o consolidado do item, será que fazendo uma outra view com os parâmetros iguais , menos a data e relacionando-a a view principal funcionaria? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 24, 2013 --view create or replace view v_minha_view as select item, data , sum(valor) group by item, data --no rel faça a seguinte query select item , sum(valor) valor from v_minha_view where data between to_date('01012013','ddmmyyy') and sysdate group by item Compartilhar este post Link para o post Compartilhar em outros sites
kamidaki 0 Denunciar post Postado Outubro 24, 2013 --view create or replace view v_minha_view as select item, data , sum(valor) group by item, data --no rel faça a seguinte query select item , sum(valor) valor from v_minha_view where data between to_date('01012013','ddmmyyy') and sysdate group by item Mota .... o que quis dizer é que tudo que está no select eu posso colocar como parâmetro no Report por ex "select item, data, mvto from tabela.... os campos data, item e mvto podem ser meus parâmetros para o cliente colocar os dados.... e o between não pode ser fixo....na verdade faço o between na aplicação de Report Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 24, 2013 Em Crystal Reports o que fazemos aqui é criar uma Stored Procedure(SP) que retornar um Cursor. Ou seja, a SP é apenas um SELECT, faz o papel da tabela/view. A SP aceita parâmetros e permite que o usuário informe seus filtros. Não sei se dá para aplicar a mesma solução aí. Compartilhar este post Link para o post Compartilhar em outros sites
fabiogalera 0 Denunciar post Postado Novembro 11, 2013 EDIT: Agora que notei que ele quer usar para aplicação, pra selecionar as colunas. O que o Motta disse pode funcionar, crie a View com as informações da data e a soma delas. Seria melhor explicar melhor como a aplicação realiza esses reports. Ela seleciona o que ? Coluna ? Where clause? Explica melhor =============================================================== Poste a query que fica mais fácil. Mas teoricamente, você não precisa por nenhum clausa WHERE no GROUP BY. Basta retirar a data depois do SELECT e no GROUP BY SELECT item, data, valor FROM tabela WHERE data between <bla> GROUP BY item, data; PARA SELECT item,valor FROM tabela WHERE data between <bla> GROUP BY item; É isso ? Teria que ver a query pra ter noção do que é esse item, é código do item vendido ? ou quantidade vendida naquela data ? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 11, 2013 WHERE no GROUP BY ATENTE --AS VENDAS INDIVIDUAIS MAIOR QUE 100 DE UM VENDEDOR SELECT VENDEDOR,SUM(VENDAS) VENDAS FROM VENDAS WHERE VENDA > 100 GROUP BY VENDEDOR --AS VENDAS SOMADAS POR VENDEDOR QUE TOTALIZADAS FORAM MAIOR QUE 1000 SELECT VENDEDOR,SUM(VENDAS) VENDAS FROM VENDAS GROUP BY VENDEDORHAVING SUM(VENDAS) > 1000 Compartilhar este post Link para o post Compartilhar em outros sites
fabiogalera 0 Denunciar post Postado Novembro 11, 2013 Nesse caso precisa, exatamente por isso que disse teoricamente, essa mesma query pode ser escrita diferente: SELECT VENDEDOR, VENDAS FROM (SELECT VENDEDOR,SUM(VENDAS) VENDAS FROM VENDAS GROUP BY VENDEDOR) WHERE VENDAS > 1000; Sem a where clause no group by Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 11, 2013 A #9 funciona, mas prefiro por HAVING. Compartilhar este post Link para o post Compartilhar em outros sites
fabiogalera 0 Denunciar post Postado Novembro 11, 2013 hehehe, dependendo do que quer ser feito, ambas podem ser utilizadas, cada uma com sua vantagem. Apenas mencionei, pois o mesmo disse que tem problemas por causa do GROUP BY e nessa solução utilizando SUB QUERY, você retira do GROUP BY a WHERE CLAUSE Compartilhar este post Link para o post Compartilhar em outros sites