Ich versuche, die Top-Kunden auf der Grundlage einer Bedingung zu ermitteln - ob sie direkte Benutzer durch die memo
Spalte in transaction
Tabelle sind. Wenn das Memo Wörter wie PAYROLL
, PAYRLL
, SALARY
und transaction_type = 'Credit'
enthält, gelten diese als Top-Kunden. So schrieb ich Anfrage unten:SQL-Joker-Auswahl
SELECT user_id,
CASE WHEN transaction_type = 'Credit' AND
(memo LIKE '%PAYROLL%' OR memo LIKE '%PAYRLL%' OR memo LIKE '%SALARY%')
THEN 1 ELSE 0 END AS TOP_USERS
FROM transaction
Allerdings sah ich eine Person, die 1 sein sollte, aber immer noch als 0 in dieser Spalte gezählt. Stimmt etwas nicht mit meiner Joker-Karte? Ich benutze PostgreSQL pgadmin3
Ich sehe keinen grellen Fehler mit den Platzhaltern, aber das ist alles, was ich aus den gegebenen Informationen sagen kann. Es könnte hilfreich sein, wenn wir die Werte von TRANSACTION_TYPE und MEMO für den Datensatz kennen würden, die übereinstimmen sollten, aber nicht –
@MarkAdelsberger diese Person, die als 0 gezählt wird, Datensätze von "Credit" unter Transaktionsart und "AMERICAN AIRLINE PAYRLL DEP" unter Memo – YOBOX
Könnte das Feld 'transaction_type' zusätzliche Leerzeichen enthalten? Vielleicht ist der, der nicht gezählt wurde, tatsächlich "Kredit"? – elmer007