此查詢爲何不起作用?依據子句排列的模糊列名稱錯誤
SELECT ROW_NUMBER() OVER (
ORDER BY DocumentID
) peta_rn
, d.DocumentID
, d.IsReEfiled
, d.IGroupID
, d.ITypeID
, d.RecordingDateTime
, dbo.GetLatestStatusDateTime(d.DocumentID) AS LatestStatusDatetime
, dbo.FnCanChangeDocumentStatus(d.DocumentStatusID, d.DocumentID) AS CanChangeStatus
, d.IDate
, d.InstrumentID
, d.DocumentStatusID
, ig.Abbreviation AS IGroupAbbreviation
, u.Username
, j.JDAbbreviation
, inf.DocumentName
, it.Abbreviation AS ITypeAbbreviation
, d.DocumentDate
, ds.Abbreviation AS DocumentStatusAbbreviation
, dbo.GetFlatDocumentName(d.DocumentID) AS FlatDocumentName
FROM Documents d
INNER JOIN IGroupes ig
ON d.IGroupID = ig.IGroupID
LEFT JOIN ITypes it
ON d.ITypeID = it.ITypeID
LEFT JOIN Users u
ON u.UserID = d.UserID
LEFT JOIN DocumentStatuses ds
ON d.DocumentStatusID = ds.DocumentStatusID
LEFT JOIN InstrumentFiles inf
ON d.DocumentID = inf.DocumentID
INNER JOIN Jurisdictions j
ON j.JurisdictionID = d.JurisdictionID
WHERE 1 = 1
,而這一個工程:
SELECT ROW_NUMBER() OVER (
ORDER BY d.DocumentID
) peta_rn
, d.DocumentID
, d.IsReEfiled
, d.IGroupID
, d.ITypeID
, d.RecordingDateTime
, dbo.GetLatestStatusDateTime(d.DocumentID) AS LatestStatusDatetime
, dbo.FnCanChangeDocumentStatus(d.DocumentStatusID, d.DocumentID) AS CanChangeStatus
, d.IDate
, d.InstrumentID
, d.DocumentStatusID
, ig.Abbreviation AS IGroupAbbreviation
, u.Username
, j.JDAbbreviation
, inf.DocumentName
, it.Abbreviation AS ITypeAbbreviation
, d.DocumentDate
, ds.Abbreviation AS DocumentStatusAbbreviation
, dbo.GetFlatDocumentName(d.DocumentID) AS FlatDocumentName
FROM Documents d
INNER JOIN IGroupes ig
ON d.IGroupID = ig.IGroupID
LEFT JOIN ITypes it
ON d.ITypeID = it.ITypeID
LEFT JOIN Users u
ON u.UserID = d.UserID
LEFT JOIN DocumentStatuses ds
ON d.DocumentStatusID = ds.DocumentStatusID
LEFT JOIN InstrumentFiles inf
ON d.DocumentID = inf.DocumentID
INNER JOIN Jurisdictions j
ON j.JurisdictionID = d.JurisdictionID
WHERE 1 = 1
正如你所看到的唯一的區別是我指定d.DocumentID。無論如何,我可以避免必須指定d.DocumentID
,而不指定DocumentID
而不使用額外的選擇?因爲畢竟,所有的documentID都指向相同的值。
如果你發現不明確的列錯誤,我認爲它應該是特定列的概率存在於多個表中,DB服務器無法從特定表中檢索列顯示你應該指定tablename.column的名稱它應該工作。 – gks