ms-access - array - javascript get form values
Contar el tipo de correo electrónico por ID de cliente (2)
Otra opción a considerar es usar una consulta dinámica con TRANSFORM
TRANSFORM NZ(Count(RECORDS.Email_NUm),0) AS CountOfEmail_NUm
SELECT RECORDS.CUST_ID
FROM RECORDS
GROUP BY RECORDS.CUST_ID
PIVOT RECORDS.Email_NUm;
Sin embargo, esto produciría encabezados de columna de CUST_ID
, 1
y 2
. Sin embargo, si tuviera otra tabla con los tipos de correo electrónico, podría valer la pena (especialmente si tiene una gran cantidad de tipos de correo electrónico que 2)
El SQL podría verse así
TRANSFORM NZ(Count(r.Email_NUm),0) AS CountOfEmail_NUm
SELECT r.CUST_ID
FROM RECORDS r
INNER JOIN EMAIL_TYPES et
ON r.Email_NUm = et.Email_NUm
GROUP BY r.CUST_ID
PIVOT et.TYPE_NAME;
Produciendo esta salida
CUST_ID | Work | Home
------- ---- ----
0000 | 3 | 1
0001 | 0 | 1
0002 | 2 | 0
0003 | 0 | 3
Tengo un formulario que las personas pueden usar para enviar correos electrónicos a nuestros clientes. El usuario tiene una opción para seleccionar entre dos mensajes enlatados (Mensaje "1" o Mensaje "2"). Detrás de escena, cada vez que presionan el botón "ENVIAR" se registran en una tabla de "REGISTROS" (siempre que lo haga a través de los manejadores de errores).
Supongamos que la tabla RECORDS tiene 2 columnas:
CUST_ID EMAIL_NUM
0000 1
0000 2
0000 1
0000 1
0001 2
0002 1
0002 1
0003 2
0003 2
0003 2
Necesito una consulta que cuente los uno y los dos para cada CUST_ID. Entonces, el conjunto de resultados debería verse más o menos así:
CUST_ID EMAIL_1_COUNT EMAIL_2_COUNT
0000 3 1
0001 0 1
0002 2 0
0003 0 3
He usado count, group bys, havings, while, union, selects anidados, pero como he dicho, probablemente estoy complicando algo que es relativamente fácil.
select
CUST_ID,
sum(iif(EMAIL_NUM = 1, 1, 0)) as EMAIL_1_COUNT,
sum(iif(EMAIL_NUM = 2, 1, 0)) as EMAIL_2_COUNT
from
RECORDS
group by
CUST_ID