Ola pessoal, estou desenvolvendo um sistemas, e nele ha um modulo onde contem informações de vendas.
Estou executando a seguinte query:
SELECT CM_POLO.DS_POLO,
SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, ‘3’, CM_ITEM.QTDE, 0 ) ) UNIDADE_PERF,
SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, ‘3’, 0, CM_ITEM.QTDE ) ) UNIDADE_MED,
SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, ‘3’, CM_ITEM.VL_LIQUIDO_TOTAL, 0 ) ) VALOR_PERF,
SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, ‘3’, 0, CM_ITEM.VL_LIQUIDO_TOTAL ) ) VALOR_MED
FROM CM_POLO,
ES_PRODUTO_FARMACEUTICO,
CM_VENDEDOR,
CM_ITEM,
CM_MOVIMENTO
WHERE ES_PRODUTO_FARMACEUTICO.ID_PRODUTO = CM_ITEM.ID_PRODUTO
AND CM_POLO.ID_POLO = CM_VENDEDOR.ID_POLO
AND CM_VENDEDOR.ID_VENDEDOR = CM_MOVIMENTO.ID_VENDEDOR
AND CM_ITEM.ID_MOVIMENTO = CM_MOVIMENTO.ID_MOVIMENTO
AND CM_MOVIMENTO.DM_CANCELAMENTO <> ‘S’
AND CM_MOVIMENTO.ID_TIPO_NOTA IN ( 1, 10, 11 )
AND CM_MOVIMENTO.DT_MOVIMENTO BETWEEN ‘01/01/2008’
AND ‘01/03/2008’
GROUP BY CM_POLO.DS_POLO
A duvida é preciso criar uma classe persistente para cada from???
No momento só criei uma class Item.java, que é atabel CM_ITEM.
Como vou passar a dtInicial e a dtFinal que o usuario digitou?
Esse é meu DAO:
package br.com.fitsistemas.dao;
import java.util.List;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.transform.Transformers;
import br.com.fitsistemas.hibernate.HibernateUtil;
import br.com.fitsistemas.persistence.Item;
public class IGDao {
public static List<Item> ListaInfo() {
System.out.println("Abrindo sessao para INFORMAÇÔES GERENCIAIS");
Session s = HibernateUtil.getSession();
System.out.println("Sessão IG iniciada com sucesso!!!");
System.out.println("Executando query...");
String sql = "SELECT DISTINCT "
+ " CM_POLO.DS_POLO, "
+ " SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, '3', CM_ITEM.QTDE, 0 ) ) UNIDADE_PERF, "
+ " SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, '3', 0, CM_ITEM.QTDE ) ) UNIDADE_MED, "
+ " SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, '3', CM_ITEM.VL_LIQUIDO_TOTAL, 0 ) ) VALOR_PERF, "
+ " SUM( DECODE( ES_PRODUTO_FARMACEUTICO.DM_CLASSIFICACAO, '3', 0, CM_ITEM.VL_LIQUIDO_TOTAL ) ) VALOR_MED "
+ " FROM CM_POLO, "
+ " ES_PRODUTO_FARMACEUTICO, "
+ " CM_VENDEDOR, "
+ " CM_ITEM, "
+ " CM_MOVIMENTO "
+ " WHERE ES_PRODUTO_FARMACEUTICO.ID_PRODUTO = CM_ITEM.ID_PRODUTO "
+ " AND CM_POLO.ID_POLO = CM_VENDEDOR.ID_POLO "
+ " AND CM_VENDEDOR.ID_VENDEDOR = CM_MOVIMENTO.ID_VENDEDOR "
+ " AND CM_ITEM.ID_MOVIMENTO = CM_MOVIMENTO.ID_MOVIMENTO "
+ " AND CM_MOVIMENTO.DM_CANCELAMENTO <> 'S' "
+ " AND CM_MOVIMENTO.ID_TIPO_NOTA IN ( 1, 10, 11 ) "
+ " AND CM_MOVIMENTO.DT_MOVIMENTO BETWEEN TO_DATE('10/02/2008', 'dd/mm/yyyy') "
+ " AND TO_DATE('12/03/2008', 'dd/mm/yyyy') "
+ " GROUP BY CM_POLO.DS_POLO";
SQLQuery qryIG = s.createSQLQuery(sql);
// qryIG.setParameter("dtInicial", string);
// qryIG.setParameter("dtFinal", string);
qryIG.setResultTransformer(Transformers.aliasToBean(Item.class));
return qryIG.list();
}
}
** estou usando Hibernate e JSF
desde ja agradeço pessoal