Access - Contar valores en campos de un mismo registro

 
Vista:

Contar valores en campos de un mismo registro

Publicado por GIO (5 intervenciones) el 20/10/2015 19:00:50
Hola,

Estoy diseñando un sistema de planificación de horas de trabajo.

Para ellos tengo una tabla llamada PLANIFICACIÓN en la que hay varios campos que representan las franjas horarias del día. Todos estos campos se pueden rellenar con unas letras:
T: Trabajada
E: Extra
N: Nocturna
P: Permiso
etc...

Me queda esta estructura de campos en la tabla:

FECHA; DNI; FRANJA1; FRANJA2; FRANJA3; FRANJA 4; ETC...

La cuestión es, quiero saber cuantas "T" hay dentro de ese registro. O sea, cuantas franajs tiene trabajadas esa persona.

Todas las respuestas que encuentro al respecto me dicen que debo hacer una consulta de Totales con la modalidad Cuenta. Pero esto me da el número de registros donde aparece la "T", no cuantas veces aparece la "T" en varios campos de un mismo registro. O sea, me cuma las columnas mientras yo quiero que me sume al final de la fila de la tabla.

¿Alguien puede ayudarme?

¡Muchas gracias de antemano.


GIO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Contar valores en campos de un mismo registro

Publicado por Enrique Heliodoro (1664 intervenciones) el 20/10/2015 20:25:34
Yo cambiaria ese 'diseño horizontal' mas propio de Excel que de Access.

Pero para lograr lo que se pretende en la actual estructura, lo haría así:

Un campo (cualquiera) puede devolver un true/false en una comparación (True = -1, False= 0)
En base a ello ....`
([Franja1] = "T") ==> 0 <==> -1
Total_Ts: ([Franja1] = "T") + ([Franja2] = "T") +([Franja3] = "T") + ... + ([FranjaN] = "T")

Lógicamente la suma de números negativos dará un resultado con un valor en negativo asi que le 'quitamos' el signo:
Total_Ts: ABS( ([Franja1] = "T") + ([Franja2] = "T") +([Franja3] = "T") + ... + ([FranjaN] = "T") )

Y línea a línea indicara cuantas 'T' hay en ese registro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar valores en campos de un mismo registro

Publicado por GIO (5 intervenciones) el 21/10/2015 12:28:27
¡Muchas gracias por la respuesta!

Ya tenía planeado solucionarlo de esta manera, pero tengo 48 franjas de media hora, lo cual me genera unas expresiones infinitamente largas y buscaba una solución algo más optimizada y sencilla.

Cuando me dices lo de evitar el diseño horizontal, es algo qeu también he pensado, pero caray no veo la manera de realizarlo de otra manera!

Si pudieses echarme una mano.

¡Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Contar valores en campos de un mismo registro

Publicado por Enrique Heliodoro (1664 intervenciones) el 21/10/2015 14:31:29
No puedo dar ideas concretas de diseño dado que desconozco las pretensiones, el entorno de aplicación y el punto de partida (hacerlo seria similar a un 'hablar por hablar').

Si se sobrepasa el limite de la SQL (infinito es una utopía) siempre quedara el recurso de fabricar una función a medida, a la que 'pasándole un par de datos' (por ejemplo el registro y el dato a contabilizar) devuelva un resultado fiel utilizando un numero mínimo de líneas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar