Buscar este blog

jueves, 16 de abril de 2015

SQL- Anidar columnas en un String - Comprobación de longitud en SQL

Voy a mostrar como obtener el resultado de 3 columnas de 1 QUERY en un único string. Para el anidado es muy importante el operador '  ||  ', que nos permitirá anidar.

NOMBRE +CAL.GRUPO+CA.ANO+ SI CAL.CODCALIDAD<2 00="" cal.codcalidad="" nbsp="">1   Y <3 0="" length="" si="">2 CAL.CODCALIDAD

AS CERTIFICADO



SELECT O.*,'NOMBRE-' || to_char(CAL.GRUPO)||to_char('-')||SUBSTR(TO_CHAR(CAL.ANO),3)||"+
" CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) < 2 "+
        "  THEN '00'||TO_CHAR(CAL.CODCALIDAD)    "+    
       "   END ||"+
      " CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) >1 AND LENGTH(TO_CHAR(CAL.CODCALIDAD))<3 p="">      "     THEN '0'||TO_CHAR(CAL.CODCALIDAD)        "+
    "    END|| "+
   "     CASE WHEN LENGTH(TO_CHAR(CAL.CODCALIDAD)) >2 "+
  "        THEN TO_CHAR(CAL.CODCALIDAD)        "+
 "       END "+
" AS CERTIFICADO FROM T  o "+
" JOIN L t on o.codl=t.codl "+
" JOIN PO a on t.costact=a.id "+
" JOIN G cal on cal.IDG=a.id "+
" WHERE o.coddar IN (?1)  "+
     " AND t.fecha between  ?2 and ?3 "+
     " ORDER BY t.fecha asc,o.orden2 asc,o.orden asc 

martes, 3 de febrero de 2015

JPA - JPQL con instancias de clases de resultado

JPA soporta envolver los resultados de la consulta JPQL con instancias de clases de resultado personalizado. Esto es especialmente útil para las consultas con múltiples expresiones SELECT, donde objetos de resultado personalizados pueden proporcionar una alternativa orientada a objetos a la representación de los resultados como Object [] elementos.


String queryTxt = "SELECT  NEW com.DocumentoAdjunto(o.codigo, o.descripcion)  FROM Documento AS o WHERE 1=1";

EntityManager em = Documento.entityManager();

TypedQuery typedQuery = em.createQuery(queryTxt , DocumentoAdjunto.class);

List results = typedQuery.getResultList();

miércoles, 28 de enero de 2015

Exp4J Expresiones matemáticas - JAVA

Exp4J es una librería que permite evaluar expresiones y funciones matemáticas.Viene con funciones y operadores preconstruidos y además permite crear nuevas operaciones para usarlas.
Es muy fácil de usar:

exp.withExpression((A * B)+G);

//asignar a cada elemento de la formula sy valor.

while(elemento){

 exp.withVariable(elemento.getKey(),Double.parseDouble(elemento.getValue().toString()));
}
formula=exp.build();
valor = formula.calculate();

jueves, 27 de noviembre de 2014

jueves, 13 de noviembre de 2014

Convertir java.util.date to string


Convertir java.util.date to string:

objElRes.getCampoFecha()!=null){

 Calendar calendar = Calendar.getInstance();

calendar.setTime(objeto.getCampoFecha());   //getCampoFecha es de tipo java.util.date

 SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy");

String formatted = format1.format(calendar.getTime());

 objeto.setValor(formatted);

Parsear fecha "10/10/14" string a Calendar Time "10 feb 2014"

Parsear fecha "10/10/14" a Calendar Time "10 feb 2014" String str_date=objR.getValor1(); DateFormat formatter ; Date date2 = null ; String pattern="dd-MM-yy"; try { str_date=str_date.replace("/","-"); SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); Date date = sdf.parse(str_date); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); obj.setCampoFecha(calendar.getTime()); }...

Acción hide() al evento CLICK de p:calendar primefaces

Aplicar acción hide al evento CLICK de p:calendar primefaces. " h:panelGroup id="groupFrom" h:outputLink id="link" value="#{cruiseFilterBean.from}" f:convertDateTime pattern="dd/MM/yyyy" type="date"/> p:ajax update="groupFrom" event="click" action="jQuery('#valorid2').hide();" h:outputLink p:calendar pattern="dd/MM/yyyy" value="#{datosh.campoFecha}" id="valorid2" h:panelGroup> "