У меня есть два запроса, и вывод для каждого из них выглядит так, как показано ниже:
SELECT UserID, ActivityDate, ActivityDay, ActivityTime
FROM Activities
WHERE ActivityType='MYS'
SELECT USerID, TimeFrom, TimeTo, ActivityDay
FROM [dbo].[userActivities] WHERE UserID=123
Ожидаемый результат:
Оба запроса можно связать с помощью следующего:
- Activities.UserID = userActivities .UserID
- Activities.ActivityDay = userActivities.ActivityDay
Мне нужно иметь все 4 строки из первого набора данных, и новые столбцы, которые необходимо добавить, основаны на значениях в второй запрос. Для ActvityDay 7 есть две записи, потому что в следующем запросе для ActvityDay 7 есть две записи
Я пытался извлечь данные, используя LEFT JOIN
но не получил желаемого результата. Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно?
Запрос я пытаюсь:
SELECT DISTINCT AD.UserID, AD.ActiityDate, AD.ActivityDay, AD.ActivityTime,
CASE WHEN AD.ActiityDate = userActivities.ActivityDay THEN 'Yes' ELSE 'No' END AS [ActivityExists],
CASE WHEN AD.ActiityDate = userActivities.ActivityDay THEN UA.TimeFrom ELSE '' END AS [Time],
FROM Activities AD LEFT JOIN userActivities UA ON AD.UserID=UA.UserID
AND AD.ActiityDate = userActivities.ActivityDay