Строки в своих столбцах в зависимости от даты и обозначены символом «х» - PullRequest
1 голос
/ 19 марта 2010

Дорогие все, пожалуйста, помогите мне, так как я новичок в SQL Server. У меня есть запрос на выборку, который в настоящее время дает следующие результаты:

DoctorName команда Дата посещения
др. Как 5
др. Южная Каролина 4
др. Gh B 6
др. Nd C 31
Доктор А 7

Используя следующий запрос: ВЫБЕРИТЕ d.DoctorName, t.TeamName, ca.VisitDate FROM cActivity AS ca ВНУТРЕННИЙ РЕЙТИНГ доктор КАК d ON ca.DoctorId = d.Id ВНУТРЕННЯЯ РЕЙТИНГОВАЯ КОМАНДА КАК НА CA.TeamId = t.Id ГДЕ ca.VisitDate МЕЖДУ «01.01.2010» И «31.01.2010»

Я хочу произвести следующее:

DoctorName Team 1 2 3 4 5 6 7 ... 31 Посещенных
др. Как х х ... 2 раза
др. Sc A x ... 1 раз
др. Gh B x ... 1 раз
др. Nd C ... x 1 раз

1 Ответ

0 голосов
/ 19 марта 2010

Использование:

  SELECT d.doctorname,
         t.teamname,
         MAX(CASE WHEN ca.visitdate = 1 THEN 'x' ELSE NULL END) AS 1,
         MAX(CASE WHEN ca.visitdate = 2 THEN 'x' ELSE NULL END) AS 2,
         MAX(CASE WHEN ca.visitdate = 3 THEN 'x' ELSE NULL END) AS 3,
         ...
         MAX(CASE WHEN ca.visitdate = 31 THEN 'x' ELSE NULL END) AS 31,
         COUNT(*) AS visited
    FROM CACTIVITY ca
    JOIN DOCTOR d ON d.id = ca.doctorid 
    JOIN TEAM t ON t.id = ca.teamid
   WHERE ca.visitdate BETWEEN '1/1/2010' AND '1/31/2010'
GROUP BY d.doctorname, t.teamname
...