У меня есть таблица:группы по комплексному запросу со случаями
Visit (FromId, ToId, VisitTime)
где FromId и ToId является FKS к таблице
UserProfile (uid, name, age ...)
Как пользователь с моей UID Я хочу, чтобы выбрать все профили I посетили или посетили меня в одном результирующем наборе, заказаном VisitTime, и с указанием «направления посещения».
получить данные с помощью этого выбора:
SELECT CASE WHEN a.FromID = 'yourIDHere'
THEN c.Name
ELSE b.Name
END Name,
CASE WHEN a.FromID = 'yourIDHere'
THEN c.Age
ELSE b.Age
END Age,
a.VisitTime,
CASE WHEN a.FromID = 'yourIDHere'
THEN 'You'
ELSE 'Friend'
END DirectionOfVisit
FROM Visit a
INNER JOIN UserProfile b
ON a.FromID = b.Uid
INNER JOIN UserProfile c
ON a.ToID = c.Uid
WHERE 'yourIDHere' IN (a.FromID, a.ToID)
ORDER BY a.VisitTime
Теперь она печатает (псевдо выход)
Jack (id1) | IN |12.12.2012
Jack (id1) | IN |11.12.2012
Jack (id1) | IN |11.12.2012
Jack (id1) | OUT | 13.12.2012
Jack (id1) | OUT | 12.12.2012
Michael (id5) | IN | 5.12.2012
Michael (id5) | OUT | 6.12.2012
Michael (id5) | OUT | 5.12.2012
Я хотел бы список, чтобы быть похожим на это:
Jack | IN | 12.12.2012 (the most recent)
Jack | OUT | 13.12.2012 (the most recent)
Michael (id5) | IN | 5.12.2012 (the most recent)
Michael (id5) | OUT | 6.12.2012 (the most recent)
I знайте, что команда GROUP решит ее, но она слишком сложна для меня (новичок).
можете ли вы включить запрос, который вы выполнили в своем вопросе? – Rossana
См. Ссылку в первой строке моего вопроса - не хотел дублировать ее здесь. Спасибо –