SQL Server: не удалось связать идентификатор из нескольких частей. - PullRequest
0 голосов
/ 06 февраля 2012

Я видел, что были похожие вопросы, но ни один из них, похоже, не помог. Может кто-нибудь объяснить, что не так с этим запросом:

SELECT 
    CH.ClaimNumber, CH.ClaimDate, CH.Warehouse, CH.SupplierNumber, 
    CH.SupplierName, CH.ControlAccount, CST.Status,
CD.Line, CD.HasGRN, CD.GRNNumber, CD.ItemCode, CD.ItemDescription, 
    CD.Price, CD.Quantity, CD.CreditValue,
CD.TaxCode, CD.TaxValue, CRS.Description, CD.IssueJournal, CD.CreditNote, 
    CD.SupplierNote, CD.Cancelled
FROM 
    CRClaimHeader AS CH, CRClaimDetail AS CD
INNER JOIN 
    CRStatusTypes AS CST ON CST.StatusID = CH.StatusFK
INNER JOIN 
    CRClaimReasons AS CRS ON CRS.ReasonCode = CD.ReasonCodeFK
WHERE 
     CH.ClaimNumber = @ClaimNumber

Я получаю сообщение об ошибке:

ON CST.StatusID = CH.StatusFK

На CH.StatusFK

Когда я поменяю местами то, что написано в этом утверждении:

FROM CRClaimHeader AS CH, CRClaimDetail AS CD

И напишите это так:

FROM CRClaimDetail AS CD, CRClaimHeader AS CH

Ошибка переходит на этот сегмент:

ON CRS.ReasonCode = CD.ReasonCodeFK

Вкл. CD.ReasonCodeFK

Ответы [ 2 ]

0 голосов
/ 07 февраля 2012

Не пропустили ли вы соединение с компакт-диска ClaimDetail с ClaimHeader CH?Вместо кросс-соединения?

0 голосов
/ 06 февраля 2012

Вы должны изменить эту строку:

FROM CRClaimHeader AS CH, CRClaimDetail AS CD 

до:

FROM CRClaimHeader AS CH 

и выполните внутреннее соединение с таблицей CD CRClaimDetail AS.

и все будет хорошо.

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