Получить количество записей в одной таблице, связанных с другой - PullRequest
0 голосов
/ 01 октября 2019

У меня есть tableA и tableB с различными столбцами, и столбцы даты есть и в A, и в B.

Эта дата означает разные вещи в обоих, но я хочу знать (простоЗапрос на английском языке)

"Сколько записей в таблице B таково, что их столбец даты (dateField_B) находится после этого в таблицеA-dateField_A.

TableA :

id_a, a1, a2, a3, ..,dateField_A

Таблица B :

id_b, b1, b2, b3, ..,dateField_B

Сложность, с которой я сталкиваюсь, состоит в том, что она является частью большой процедуры, в которой я шаг за шагом создаю большуюнабор данных, использующий различные соединения. И «итоговое количество записей» должно быть числом в подмножестве, доступным для других частей процедуры для сравнений.

Что-то вроде

case o.numberOfRecords
    when > 5:  <doSomething>
    when 1: <do something other>
    else: <do else>
end as "someField"

1 Ответ

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

Один метод - это cross apply или коррелированный подзапрос:

select a.*, b.cnt
from a cross apply
     (select count(*) as cnt
      from b
      where b.id = a.id and b.dateField_B > a.dateField_A
     ) b;

Я не удивлюсь, если вы захотите провести сравнение на равенство, скажем, на id (я его добавил),но это не упоминается в вашем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...