SQL считая в таблице - PullRequest
       3

SQL считая в таблице

0 голосов
/ 20 апреля 2020

У меня есть таблица с именем и месяцем.

Как бы выглядел SQL, чтобы составить таблицу, которая подсчитывает, сколько записей в месяц для каждого имени , например, enter image description here

Я уверен, что изменил код vb. net, чтобы отразить фактические потребности проекта и включить его в DGV, это просто SQL, который Я немного сомневаюсь, но для меня это самый простой способ объяснить, чего я пытаюсь достичь.

Любая помощь будет признательна.

Приветствия, Пит

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

Модифицировано и работает как шарм, спасибо, парни.

SELECT s_repair_location AS "Service Center",
    Sum(case when month(s_entry_date)=01 then 1 else 0 end) AS Jan,
    Sum(case when month(s_entry_date)=02 then 1 else 0 end) AS Feb,
    Sum(case when month(s_entry_date)=03 then 1 else 0 end) AS Mar,
    Sum(case when month(s_entry_date)=04 then 1 else 0 end) AS Apr,
    Sum(case when month(s_entry_date)=05 then 1 else 0 end) AS May,
    Sum(case when month(s_entry_date)=06 then 1 else 0 end) AS Jun,
    Sum(case when month(s_entry_date)=07 then 1 else 0 end) AS Jul,
    Sum(case when month(s_entry_date)=08 then 1 else 0 end) AS Aug,
    Sum(case when month(s_entry_date)=09 then 1 else 0 end) AS Sep,
    Sum(case when month(s_entry_date)=10 then 1 else 0 end) AS Oct,
    Sum(case when month(s_entry_date)=11 then 1 else 0 end) AS Nov,
    Sum(case when month(s_entry_date)=12 then 1 else 0 end) AS "Dec"
FROM s_service_repairs
WHERE Year(s_entry_date) = 2019 and s_repair_location IS NOT NULL
GROUP BY s_repair_location
0 голосов
/ 20 апреля 2020

Вы можете использовать условное агрегирование. Как то так:

select name,
       sum(case when month(date) = 1 then 1 else 0 end) as month_1,
       sum(case when month(date) = 2 then 1 else 0 end) as month_2,
       . . .
from t
group by name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...