SQL (Access): несколько значений для каждого " ID " - хранить как TRUE, если не ложь
Добрый день!
Недавно я столкнулся с проблемой, которую, как я надеюсь, можно решить с вашей помощью. Наша система [печально] работает на Access (2007). Я имею приличный опыт работы с SQL и предпочитаю использовать этот метод для большинства запросов, а не для представления дизайна. Тем не менее, это проблема, с которой я столкнулся недавно:
Таблица (с собственным первичным ключом, конечно) содержит ParticipantID и записи. Эта таблица может содержать несколько записей на человека из-за наличия событий в различное место. С помощью этой информации мы отслеживаем, находится ли каждая запись в нашей системе уже из-за местоположения, попадающего под наш большой "зонтик" (внутренний). Чтобы это выглядело просто, это выглядит примерно так, игнорируя первичный ключ, поскольку мы заботимся только об идентификаторе участника.
ParticipantID Internal
1 -1
1 -1
2 0
3 -1
3 -1
3 0
4 -1
4 0
Я хочу иметь возможность сказать, если какие-либо записи участника не являются внутренними (например. =0), то в результатах этого запроса сохраните его как 0.
Следовательно, таблица результатов будет выглядеть так: например:
ParticipantID Internal
1 -1
2 0
3 0
4 0
Имеет ли это смысл? Заранее вам спасибо!
2 ответов:
Вы можете использовать Max:
SELECT internal.ParticipantID, Max(internal.Internal) AS MaxOfInternal FROM internal GROUP BY internal.ParticipantID;Я построил вышеизложенное, используя окно дизайна запроса.
Если внутренние значения могут быть только 0 и -1, то может помочь следующее
Select ParticipantID,max(internal) from thetable Group by ParticipantID
Comments