Всегда лучше подготовить результат для клиента в максимально возможной степени на сервере SQL, если нам не нужны все записи в клиенте.
Поскольку мы сэкономим много времени в сети и SQLсерверы всегда быстрее. Затем, если есть какое-либо исправление, его можно развернуть в одном месте, и нет необходимости выпускать исправление для всех клиентов.
Я пробовал этот запрос:
DECLARE @date DATE
DECLARE @pr_nmb INT
SET @date = '01-01-2018'
SET @pr_nmb =11
SELECT tbl1.*
FROM table1 tbl1
WHERE tbl1.pr_nmb = @pr_nmb and
YEAR(@date) = ALL ( SELECT YEAR( Creation_Date)
FROM table2 tbl2
WHERE tbl1.pr_nmb = tbl2.PR_nmb )
DECLARE @date DATE
DECLARE @pr_nmb INT
SET @date = '01-01-2018'
SET @pr_nmb =11
SELECT tbl1.*
FROM table1 tbl1
WHERE tbl1.pr_nmb = @pr_nmb and
YEAR(@date) = ALL ( SELECT YEAR( Creation_Date)
FROM table2 tbl2
WHERE tbl1.pr_nmb = tbl2.PR_nmb )