С помощью моего друга я смог ответить на этот сложный запрос.
DECLARE @LastSevenDays DATETIME, @Last30Days DATETIME
SELECT @LastSevenDays = DATEADD(dd, -7, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)),
@Last30Days = DATEADD(dd, -30, DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0))
SELECT [D].DivisionName
, COUNT(DISTINCT CASE WHEN DateTimeComplete >= @LastSevenDays THEN UQ.Username ELSE NULL END) AS ParticipantsLast7Days
, COUNT(DISTINCT CASE WHEN DateTimeComplete >= @LastSevenDays THEN UQ.QuizID ELSE NULL END) AS QuizzesLast7Days
, COUNT(DISTINCT UQ.Username) AS ParticipantsLast30Days
, COUNT(DISTINCT UQ.QuizID) AS QuizzesLast30Days
, COUNT(DISTINCT EM.UserName) AS TotalParticipantsInDivisions
, COUNT(DISTINCT EM.UserName) - COUNT(DISTINCT UQ.Username) [ParticipantsInDivisionsWithoutQuiz]
FROM employee EM
INNER JOIN Divisions D
ON D.SapCode = EM.DivisionCode
LEFT OUTER JOIN [UserQuiz] AS UQ
ON UQ.UserName = EM.UserName
AND DateTimeComplete >= @Last30Days
GROUP BY [D].[DivisionName]
Этот запрос покажет мне следующее:
- общее количество участников в викторинах на прошлой неделе и в прошлом месяце
- общее количество проведенных викторин за последниенеделя и последний месяц
- общее количество сотрудников в каждом подразделении
- общее количество сотрудников в каждом подразделении без каких-либо тестов
запрос работает нормально, но теперь послепомещая таблицу на веб-сайт и пытаясь настроить его с помощью SqlDataSource, который содержит этот запрос для извлечения информации из базы данных, он попросил меня определить параметр для двух переменных: @LastSevenDays и @ Last30Days, и я не знал, что мне следует делатьделать с этим.Любая помощь, пожалуйста?
Я знаю, может быть, мой вопрос кажется легким, но я много пробовал и потерпел неудачу с ним.Пожалуйста, помогите мне