Может быть просто - изменить идентификатор с реальным именем из другой таблицы - PullRequest
0 голосов
/ 15 марта 2020

Я надеюсь, что вы можете помочь потерянному человеку в SQL: -)

Выполнение этого SQL запроса:

SELECT c.CompanyName, c.ClientNumber, obo.EndMonth, ob.EndDate, ob.ClosedBy,
      ob.ClosedOn, obc.IsActive, obc.CheckPointTypeFk, cpt.Name
FROM OperationBase_Operation AS obo
INNER JOIN Person AS c ON obo.ClientFk = c.Id
INNER JOIN OperationBase_CheckPoint AS obc ON obo.Id = obc.OperationFk
INNER JOIN CheckPointType AS cpt ON obc.CheckPointTypeFk = cpt.Id
INNER JOIN OperationBase AS ob ON obc.Id = ob.Id    
WHERE obo.EndMonth = '202002'
ORDER BY c.CompanyName, ob.EndDate;

Результаты: Изображение результатов

ВОПРОС: Идентификатор 329 в разделе "ClosedBy" - я хотел бы изменить этот идентификатор с настоящим именем из таблицы Person - Найти идентификатор 329 в таблице Person и получить столбец "Signature" в строке 329

изображение персоны за столом

1 Ответ

0 голосов
/ 15 марта 2020

Вам нужно еще одно соединение от OperationBase до Person, но на этот раз сделайте это объединением left, потому что я вижу, что в вашем запросе null s и вместо ob.ClosedBy выберите Signature:

SELECT 
  c.CompanyName, c.ClientNumber, obo.EndMonth, ob.EndDate, p.Signature, 
  ob.ClosedOn, obc.IsActive, obc.CheckPointTypeFk, cpt.Name
FROM OperationBase_Operation AS obo
INNER JOIN Person AS c ON obo.ClientFk = c.Id
INNER JOIN OperationBase_CheckPoint AS obc ON obo.Id = obc.OperationFk
INNER JOIN CheckPointType AS cpt ON obc.CheckPointTypeFk = cpt.Id
INNER JOIN OperationBase AS ob ON obc.Id = ob.Id
LEFT JOIN Person AS p ON p.ID = ob.ClosedBy
WHERE obo.EndMonth = '202002'
ORDER BY c.CompanyName, ob.EndDate;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...