SQL Server. Запрос для отображения лица и его имени банка – одна строка?
У меня есть следующие таблицы:
TRANS
ID HPARENT1 HPERSON -------------------------------- 70001 60001 100 60001 50001 100 50001 NULL 2
где
-
ID
начинающийся с 7, является зарядом -
ID
начинающийся с 6, является квитанцией -
ID
начинающийся с 5, представляет собой запись в банковском депозите в том же таблицеTRANS
Здесь, в этом примере, 70001 – это плата, уплаченная при получении 60001, а 50001 – запись банковского депозита квитанции.
HPERSON
– плата и квитанция – это лицо, которому оно было начислено и оплачено.
Где, так как, HPERSON
банковского вклада является идентификатором БАНКА.
БАНКА
ID BankName -------------------------- 2 MyBank
ЧЕЛОВЕК
ID FIRSTNAME LASTNAME --------------------------------- 100 Barry Allen
Я хочу, чтобы на выходе указывалось имя человека и имя его банка.
Barry Allen MyBank
И способ идентифицировать банк человека, найти его вклад в депозит (50001), а затем найти hperson (2) из него (который является идентификатором банка)
Думаю, мне придется присоединиться к таблице ТРАНС с собой.
Не знаете, как это сделать.
Может кто-нибудь помочь мне здесь?
Вы можете присоединиться к таблице для себя, указав разные псевдонимы «версии», подобные этому. Я предполагаю, что есть только 3 уровня этого иерарки.
SELECT p.FIRSTNAME, p.LASTNAME, b.BankName FROM PERSON p JOIN TRANS t1 ON t1.HPERSON = p.id JOIN TRANS t2 ON t2.ID = t1.HPARENT1 JOIN TRANS t3 ON t3.ID = t2.HPARENT1 JOIN BANK b ON b.ID = t3.HPERSON