|    
			
				31/05/2009, 11:22
			
			
			  | 
  |   |  |  |  Fecha de Ingreso: marzo-2009 
						Mensajes: 34
					 Antigüedad: 16 años, 7 meses Puntos: 0 |  | 
  |  Consulta compleja - ¿¿Es posible??  
  Hola.
 Me gustaría saber si es posible (que creo que no) hacer lo siguiente:
 
 supongamos que tengo una tabla con la siguiente estructura
 
 ID, cAMPO1, CAMPO2, CAMPO3, ...., CAMPOn
 
 
 ID contendrá los siguientes valores por fila (no pongo nada del resto de columnas)
 
 351001
 351002
 351003
 352004
 352005
 352006
 353007
 353008
 384009
 384010
 385011
 386012
 
 Este campo lo puedo dividir así para el primer registro, por ejemplo: 38 - 1 - 001
 
 Si yo hago un select * from miTabla obtendré estos 12 registros, hasta ahí todo bien.
 
 Supongamos ahora que las columnas son de tipo entero,por tanto puedo obtener un total, pero a mi me interesa obtener varios
 
 totales, de la siguiente forma:
 
 Total tipo 1: Sería la suma de los elementos que corresponden al caracter en la posición 3 y que valen 1, tal que así
 
 351001
 351002
 351003
 suma de estos 3 elementos  (*1)
 
 352004
 352005
 352006
 suma de estos 3 elementos (*2)
 
 353007
 353008
 suma de estos 2 elementos (*3)
 
 384009
 384010
 suma de estos 2 elementos (*4)
 
 385011
 suma de este elemento (*5)
 
 386012
 suma de este elemento (*6)
 
 
 total tipo 2: seria la suma de los elementos (35 y 38) que coincidan con los dos primeros caracteres, tal que así:
 
 351001
 351002
 351003
 352004
 352005
 352006
 353007
 353008
 suma de estos 8 elementos (*7)
 
 384009
 384010
 385011
 386012
 suma de estos 4 elementos (*8)
 
 
 Como resultado final debería obtener en este orden lo siguiente
 
 351001
 351002
 351003
 (*1)
 352004
 352005
 352006
 (*2)
 353007
 353008
 (*3)
 384009
 384010
 (*4)
 385011
 (*5)
 386012
 (*6)
 (*7)
 (*8)
 
 por tanto en lugar de obtener 12 registros, debería obtener 20 registros en total.
 
 Por que todo este follón????, porque hasta ahora yo consultaba la tabla y luego una vez que la tenía, vía codigo obtenía las
 
 sumas que he comentado. El problema viene cuando obtengo, digamos 5000 registros y los quiero mostrar usando un <h:datable en
 
 JSF, que he  almacenado en una lista, que consume memoria y en la que dependiendo del número de columnas pues dará error de
 
 memoria.
 
 Hay una técnica llamada lazy-loading para resolver esto, pero necesita tirar del recordset con todos los resultados y me
 
 pregunto si yo podría implementar en el servidor de bases de datos esta operativa para que me devuelva los datos que he
 
 puesto anteriormente y pueda mostrarlo en la página sin problemas.
 
 Bueno, espero haberme explicado.
 
 Gracias.
     |