Несколько JOIN на одной таблице TSQL - PullRequest
0 голосов
/ 12 декабря 2018

После поиска моих сомнений, вокруг множества вопросов об этом я все еще не могу получить желаемый результат.Я пытаюсь присоединиться к одной и той же таблице 3 раза, но Sqlserver не распознает поля.

CREATE PROCEDURE GetServices
AS
BEGIN
    SELECT
        [Service].ServiceID AS ServiceID,
        [Service].ServiceStart AS [Data de ínicio do serviço],
        EE.EntDescr AS Entidade,
        EE1.PartnerID AS Parceiro,
        EE2.Partner2ID AS [Segundo Parceiro],
        Circuit.CircuitDescr AS [Descrição do Circuito],
        Truck.TruckPlate AS Matrícula,
        [Service].StartKms AS [Km's Iniciais],
        [Service].StartCheck1 AS [Verificação 1],
        [Service].StartCheck2 AS [Verificação 2],
        [Service].StartCheck3 AS [Verificação 3],
        [Service].StartCheck4 AS [Verificação 4],
        [Service].StartCheck5 AS [Verificação 5],
        [Service].StartCheck6 AS [Verificação 6],
        [Service].ServiceEnd AS [Data de ínicio do serviço],
        [Service].EndKms AS [Km's Finais],
        [Service].HRCheck AS [Verificação HR],
        [Service].HRNotes AS [Notas HR]
    FROM
     [Service]
    LEFT OUTER JOIN EntEnt EE ON EE.EntID = [Service].DriverID
    LEFT OUTER JOIN EntEnt EE1 ON EE1.EntID = [Service].PartnerID
    LEFT OUTER JOIN EntEnt EE2 ON EE2.EntID = [Service].Partner2ID
    INNER JOIN Circuit on Circuit.CircuitID = [Service].CircuitID
    INNER JOIN Truck ON Truck.TruckID = [Service].TruckID
END

EE1.PartnerID AS Parceiro && EE2.Partner2ID AS [Segundo Parceiro], - этополучение неверного имени столбца ошибка

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018
CREATE PROCEDURE GetServices
AS
BEGIN
    SELECT
        [Service].ServiceID AS ServiceID,
        [Service].ServiceStart AS [Data de ínicio do serviço],
        EE.EntDescr AS Entidade,
        Service.PartnerID AS Parceiro,
        Service.Partner2ID AS [Segundo Parceiro],
        Circuit.CircuitDescr AS [Descrição do Circuito],
        Truck.TruckPlate AS Matrícula,
        [Service].StartKms AS [Km's Iniciais],
        [Service].StartCheck1 AS [Verificação 1],
        [Service].StartCheck2 AS [Verificação 2],
        [Service].StartCheck3 AS [Verificação 3],
        [Service].StartCheck4 AS [Verificação 4],
        [Service].StartCheck5 AS [Verificação 5],
        [Service].StartCheck6 AS [Verificação 6],
        [Service].ServiceEnd AS [Data de ínicio do serviço],
        [Service].EndKms AS [Km's Finais],
        [Service].HRCheck AS [Verificação HR],
        [Service].HRNotes AS [Notas HR]
    FROM
     [Service]
    LEFT OUTER JOIN EntEnt EE ON EE.EntID = [Service].DriverID
    LEFT OUTER JOIN EntEnt EE1 ON EE1.EntID = [Service].PartnerID
    LEFT OUTER JOIN EntEnt EE2 ON EE2.EntID = [Service].Partner2ID
    INNER JOIN Circuit on Circuit.CircuitID = [Service].CircuitID
    INNER JOIN Truck ON Truck.TruckID = [Service].TruckID
END

// Я думаю, что вы используете таблицу извлечения.заменить EE1 на Сервис может работать

0 голосов
/ 12 декабря 2018

На основании вашего запроса, два поля, которые вы запрашиваете, должны быть ee1.EntID и EE2.entID, потому что Partner1ID и Partner2ID находятся в вашей служебной таблице

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