Member 13674721 Ответов: 1

Кросс-табличный запрос (посещаемость)


я генерирую отчет о ежемесячной посещаемости студентов с помощью кросс-табличного запроса ..у меня есть таблица с такими полями, как User_Id,Дата,Время и статус
код, который я попробовал, показывает посещаемость отдельно для каждой даты для одного и того же идентификатора пользователя


Идентификатор пользователя 1 2 3 4
1121 P null null null
1121 null P null null
1121 null null P null

как мне ее решить???

Что я уже пробовал:

выберите [User_Id],[1],[2],[3],[4] откуда
(выберите [функция user_id], день([дата])дата,время,состояние от [first_db].на [dbo].[Марка]) Ма
стержень
(
Макс. [статус]
для даты в ([1],[2],[3],[4])
)как рядовой
заказать по
ПВТ.Функция user_id

OriginalGriff

Как вы решаете, что именно?
Вы не задали ни одного вопроса, и мы получаем только то, что вы печатаете для работы.
Мы понятия не имеем, чего вы пытаетесь достичь, или как это соответствует или не соответствует вашим ожиданиям.

Member 13674721

я просто хочу знать, что не так с этим запросом
я хочу сгенерировать следующий вывод в sql :
Функция user_id 2018-02-01 2018-02-02 2018-02-03
1001 P P A
1002 P P P
1003 A P P

Вместо этого я получаю этот вывод:
Функция user_id 2018-02-01 2018-02-02 2018-02-03
1001 P Null Null
1001 П нуль нуль
1002 P Nulll Null
1002 null P null

itsmypassion

Пожалуйста, поделитесь образцами данных.

1 Ответов

Рейтинг:
0

Santosh kumar Pithani

SELECT [User_Id],
       MAX([1]) AS [1],
       MAX([2]) AS [2],
       MAX([3]) AS [3],
       MAX([4]) AS [4] 
  FROM [first_db].[dbo].[MarkA]
   PIVOT
       (
         MAX(Status) FOR Date in ([1],[2],[3],[4])
       )as pvt
  GROUP BY [User_Id]  ORDER BY [User_Id]


Member 13674721

Спасибо за решение.Но вместо того,чтобы отображать 1,2,3,4 в качестве заголовков моих столбцов,я хочу, чтобы дата присутствовала в качестве заголовка столбца, например, 2018-02-01, 2018-02-02, 2018-02-03
- Как мне это сделать?

Santosh kumar Pithani

вы должны дать союзникам MAX([1]) как '2018-02-01' вместо [1]..