Это довольно много для меня. Одна из моих проблем заключается в том, что я не знаю, как сформулировать вопрос, что очевидно по названию.T-SQL - Найти отдельные значения в таблице только в том случае, если объединенные строки удовлетворяют списку критериев
Я попытаюсь проиллюстрировать мою проблему:
У меня есть таблица, A:
ID LocationID
11 185
12 185
13 206
И таблицу B:
ID AID Position Value
1 11 1 4
2 11 3 8
3 11 5 4
4 12 1 4
5 12 2 4
6 12 3 5
Таблица B связан с таблицей А по ID
и AID
. Я хотел бы построить запрос, который имеет следующие фильтры: Position = 1 AND Value = 4
и Position = 3 AND Value = 5
и который дает мне список различных идентификаторов от A.ID
, которые ставят все данных критериев.
Под этим я подразумеваю, что если я присоединяюсь к двум столам вместе с INNER JOIN, я хочу иметь только A.ID = 12
.
свой старт к решению этой проблемы было что-то вдоль линий:
SELECT DISTINCT A.ID
FROM A
INNER JOIN B ON (A.ID = B.AID)
WHERE
A.LocationID = 185 AND
(B.Position = 1 AND B.Value = 4) OR
(B.Position = 3 AND B.Value = 5)
который, очевидно, не работает. Я думал, что у меня есть четкое решение этого, но когда я думаю об этом, я действительно этого не делаю.
Я немного в тупике от этой проблемы, и мне сложно найти стратегию по ее решению, так как я даже не знаю, какие ключевые слова использовать в моем поиске.