Любая возможность включить цикл foreach в SQL? - PullRequest
0 голосов
/ 28 октября 2019

Я не уверен, возможно ли это через SQL.

У меня есть 2 таблицы:

  1. (int Contract_ID, int PR_nmb, проверка bool)
  2. (int PR_ID, int PR_nmb, дата Creation_Date)

Это соединение 1 ко многим, для каждого Контракта у меня много PR с одним и тем же PR nmb. Я хочу взять pr_nmb из таблицы 1, а затем проверить в таблице 2, все ли PR были созданы в текущем году и вернуть true или false в Check.

Могу ли я сделать это в SQL? Или лучше написать эту логику на C #? Любые советы приветствуются.

1 Ответ

0 голосов
/ 28 октября 2019

Всегда лучше подготовить результат для клиента в максимально возможной степени на сервере 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  ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...