Вот один из способов решения этой проблемы. Я включил полностью рабочий пример, чтобы вы могли увидеть хороший и простой способ обмена данными. :) Есть несколько способов, которыми вы можете заняться подобными вещами, но это то, что пришло мне в голову первым.
declare @PlayerStrategy table
(
PLAYER_STATEGY_ID int
, STRATEGY_ID int
, PLAYER_ID int
, POSITION_CODE int
, STATUS_CODE int
)
insert @PlayerStrategy values
(1490, 511, 64, 2, 2)
, (1491, 511, 33, 2, 2)
, (1492, 511, 23, 4, 1)
, (1493, 512, 33, 2, 2)
, (1494, 512, 23, 5, 1)
, (1495, 513, 33, 2, 2)
, (1496, 513, 23, 4, 1)
, (1497, 514, 33, 2, 2)
declare @PlayerComboStrategy table
(
PLAYER_ID int
, POSITION_CODE int
, STATUS_CODE int
)
insert @PlayerComboStrategy values
(33, 2, 2)
, (23, 4, 1)
select ps.STRATEGY_ID
from @PlayerStrategy ps
join @PlayerComboStrategy pcs on ps.PLAYER_ID = pcs.PLAYER_ID
and ps.POSITION_CODE = pcs.POSITION_CODE
and ps.STATUS_CODE = pcs.STATUS_CODE
group by ps.STRATEGY_ID
having count(ps.PLAYER_ID) = (select count(*) from @PlayerComboStrategy)
and count(ps.PLAYER_ID) = (select count(*) from @PlayerStrategy ps2 where ps2.STRATEGY_ID = ps.STRATEGY_ID)