В моей базе данных у меня есть несколько тысяч клиентов, с определенными критериями, происходящими с разными интервалами. Есть колонки для каждого дня недели (M, Tu, W, Th, F, Sa, Su). Мне нужно узнать, сколько дней в неделю будет запускаться задание. У меня есть запрос ниже, но он, конечно, также возвращает конкретный день недели вместе с TotalDays в неделю. Тем не менее, мне нужно видеть только TotalDays, а не дополнительный показ каждый отдельный день. Как я могу это сделать?Дело и сумма нескольких столбцов
SELECT X.*,M+Tu+W+Th+F+Sa+Su AS TotalDays
FROM
(
SELECT
CASE WHEN [M] = '1' THEN 1 ELSE 0 END as "M",
CASE WHEN [Tu] = '1' THEN 1 ELSE 0 END as "Tu",
CASE WHEN [W] = '1' THEN 1 ELSE 0 END as "W",
CASE WHEN [Th] = '1' THEN 1 ELSE 0 END as "Th",
CASE WHEN [F] = '1' THEN 1 ELSE 0 END as "F",
CASE WHEN [Sa] = '1' THEN 1 ELSE 0 END as "Sa",
CASE WHEN [Su] = '1' THEN 1 ELSE 0 END as "Su"
FROM
Customers
) X
Я должен сказать, что тип данных здесь немного, так что я не могу просто сделать Sum дней, такими как следующий, как это возвращает ошибку, что бит данных типа недопустимо для оператора суммы.
SELECT
(SUM(M) + SUM(Tu) + SUM(W) + SUM(Th) + SUM(F) + SUM(Sa) + SUM(Su)) as TotalDays
FROM Customers
Что делать, если вы используете COUNT вместо SUM? – Pieter21
COUNT не работает, так как он возвращает 7 для каждого клиента, поэтому он учитывает как значения 0, так и 1. Как уже упоминалось, SUM не работает. Я получаю возвращенную ошибку, что бит типа данных недействителен для оператора sum. – aantiix