Frage

Ich habe ein Formular, mit dem man E-Mails an unsere Kunden senden kann.Der Benutzer hat die Möglichkeit, zwischen zwei vorgefertigten Nachrichten zu wählen (Nachricht „1“ oder Nachricht „2“).Hinter den Kulissen wird jedes Mal, wenn sie auf die Schaltfläche „SENDEN“ klicken, eine Anmeldung in einer „RECORDS“-Tabelle durchgeführt (sofern die Fehlerbehandlungsroutinen durchlaufen werden).

Nehmen wir an, die RECORDS-Tabelle hätte zwei Spalten:

CUST_ID  EMAIL_NUM
0000         1
0000         2
0000         1
0000         1
0001         2
0002         1
0002         1
0003         2
0003         2
0003         2

Ich benötige eine Abfrage, die die Einsen und Zweien für jede CUST_ID zählt.Die Ergebnismenge sollte also etwa so aussehen:

CUST_ID  EMAIL_1_COUNT  EMAIL_2_COUNT
0000          3              1
0001          0              1
0002          2              0
0003          0              3

Ich habe „Count“, „Group Bys“, „Havings“, „While“, „Union“ und „Nested Selects“ verwendet, aber wie gesagt, ich verkompliziere wahrscheinlich etwas, das relativ einfach ist.

War es hilfreich?

Lösung

generasacodicetagpre.

Andere Tipps

Eine weitere zu berücksichtigende Option ist die Verwendung einer Pivot-Abfrage mit 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;

Dies würde jedoch zu Spaltenköpfen von führen CUST_ID , 1, Und 2.Wenn Sie jedoch eine andere Tabelle mit den E-Mail-Typen hätten, könnte es sich lohnen (insbesondere, wenn Sie mehr als 2 E-Mail-Typen hätten).

Das SQL könnte so aussehen

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;

Diese Ausgabe produzieren

   CUST_ID | Work | Home 
   -------   ----   ----
   0000    | 3    | 1
   0001    | 0    | 1
   0002    | 2    | 0
   0003    | 0    | 3
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top