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


Имеет ли это смысл? Заранее вам спасибо!

469   2  

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

    Ничего не найдено.