Principales respuestas
Guardar valores de Checkbox y mostrar su DescripciON

Pregunta
-
Tengo una aplicación tipo Survey (Encuestas).
Hay preguntas que tienen radionbuttons y otras más con muchos "checkboxs"
Se intentan guardar los valores (LAS RESPUESTAS de cada pregunta) así:pregunta 1 - RadioButton SI - NO - NO Contesta
Campo P1 varchar(2): Valores: S, N, NCpregunta 1A - RadionButton con varias Opciones, y opción Otros, con campo de observaciones
Campo P1A_01 tinyint: valores 1, 2, 3, ...6
Campo P1A_02 varchar(200): valore de observaciones para P1A_01 = 6Pregunta 2 - Con varios checkbox (1..7), checkbox Otros con campo Observaciones, incluido checkbox No Sabe/No Contesta
Campo P2ContMotivos tinyint: Guarda el número de
Campos tinyint: P2_01 P2_02... P2_07 . Valor de cada campo: 1, 2,...7 según la opción.
Campo tinyint: P2_10_1 para opción Otros. Valor 10
Campo varchar(200): P2_10_2 para Observaciones si se ha elegido Opción Otros.
Campo tinyint P2_11 para opción NO Sabe/No Contesta. Valor: 255
En una vista se crearía la Select para mostrar las respuestas elegidas:
CASE
WHEN P1 = 'S' THEN "SI"
WHEN P1 = 'N' THEN "NO"
ELSE "NO CONTESTA"
END
AS Pregunta 1(CASE
WHEN P2_01 IS NOT NULL AND P2_01= 1 THEN "Opción 1"
ELSE ""
END )
+(CASE
WHEN P2_02 IS NOT NULL AND P2_02= 2 THEN ", Opción 2"
ELSE ""
END )
+ ...
AS Pregunta 2
Para mostrar la descripción que corresponde al valor del checkbox se puede utilizar CASE o relación con tablas maestras ? Qué recomiendan?Alguna sugerencia?
- Editado Miriam Pasion viernes, 4 de octubre de 2019 15:20
Respuestas
-
Deleted
- Marcado como respuesta Pablo RubioModerator jueves, 10 de octubre de 2019 15:58
-
Desgraciadamente, es proyecto legacy, no podemos modificar modelo de datos.
En tu modelo, dónde guardarías las RESPUESTAS de cada pregunta, teniendo en cuenta que una pregunta puede tener varias respuestas posibles (CheckBoxs).
O un CASE enorme, o un montón de left outer join.select 'Pregunta 2', c.P2_01, p201.Valor, c.P2_02, p202.Valor, ...c.P2_07, p207.Valor , c.P2_10_1, c.P2_10_2, p210.Valor , c.P2_11 , CASE WHEN P2_11 = 255 THEN 'NO CONTESTA' ELSE '' END from campañaCliente c left outer join p2_valores p201 on c.P2_01 = p201.Indice left outer join p2_valores p202 on c.P2_02 = p202.Indice ... left outer join p2_valores p207 on c.P2_07 = p207.Indice left outer join p2_valores p210 on c.P2_10_1 = p210.Indice
- Editado Miriam Pasion viernes, 4 de octubre de 2019 15:17
- Marcado como respuesta Pablo RubioModerator jueves, 10 de octubre de 2019 15:58
-
Deleted
- Marcado como respuesta Pablo RubioModerator jueves, 10 de octubre de 2019 15:58
-
Son lAS RESPUESTAS de cada pregunta.
Por ejemplo:
Para la Pregunta 2 tenemos los campos P2_01 P2_02... P2_07 .... que guardan las respuestas a la pregunta 2 (son los checkboxs...)
- Marcado como respuesta Pablo RubioModerator jueves, 10 de octubre de 2019 15:58
Todas las respuestas
-
Deleted
- Marcado como respuesta Pablo RubioModerator jueves, 10 de octubre de 2019 15:58
-
Desgraciadamente, es proyecto legacy, no podemos modificar modelo de datos.
En tu modelo, dónde guardarías las RESPUESTAS de cada pregunta, teniendo en cuenta que una pregunta puede tener varias respuestas posibles (CheckBoxs).
O un CASE enorme, o un montón de left outer join.select 'Pregunta 2', c.P2_01, p201.Valor, c.P2_02, p202.Valor, ...c.P2_07, p207.Valor , c.P2_10_1, c.P2_10_2, p210.Valor , c.P2_11 , CASE WHEN P2_11 = 255 THEN 'NO CONTESTA' ELSE '' END from campañaCliente c left outer join p2_valores p201 on c.P2_01 = p201.Indice left outer join p2_valores p202 on c.P2_02 = p202.Indice ... left outer join p2_valores p207 on c.P2_07 = p207.Indice left outer join p2_valores p210 on c.P2_10_1 = p210.Indice
- Editado Miriam Pasion viernes, 4 de octubre de 2019 15:17
- Marcado como respuesta Pablo RubioModerator jueves, 10 de octubre de 2019 15:58
-
Deleted
- Marcado como respuesta Pablo RubioModerator jueves, 10 de octubre de 2019 15:58
-
Son lAS RESPUESTAS de cada pregunta.
Por ejemplo:
Para la Pregunta 2 tenemos los campos P2_01 P2_02... P2_07 .... que guardan las respuestas a la pregunta 2 (son los checkboxs...)
- Marcado como respuesta Pablo RubioModerator jueves, 10 de octubre de 2019 15:58