SQL / SSRS:无法绑定多部分标识符" "



在当前在两个数据集上的两个列中的报告中工作,一个试图将数据集组合到一个单个查询中的大坝。当我进行以下查询时,我会得到多部分标识符" fa.internaluserid"。

--TST Group
SELECT        A.AuditID, 
A.FileID, 
A.Description, 
A.UserID, 
IU.FirstName + ' ' + IU.LastName AS UserName, 
FM.FileNumber, 
SWITCHOFFSET(CONVERT(datetimeoffset, A.Date),'-05:00') AS 'LocalDateTime', 
CONVERT(VARCHAR(10), A.Date, 101) AS 'Date', 
CONVERT(VARCHAR(10), A.Date, 14) AS 'UnadjustedTime',
COUNT(FA.FileActionsID) AS ActionCount
FROM            FileMain fm
INNER JOIN InternalUser AS IU ON fa.InternalUserID = IU.InternalUserID 
JOIN FileActions FA on FA.FileID = FM.FileID
LEFT OUTER JOIN Audit AS A ON A.FileID = FM.FileID
WHERE        (FM.OfficeID = 1) 
AND (A.Description = 'File Opened' 
OR A.Description = 'File Closed') 
AND (A.Date >= GETDATE() - 2) 
AND (IU.InternalUserID IN 
    (
--ID's go here
    )
)
ORDER BY UserName, A.AuditID

这是我组合的原始两个查询:

--TST Group
SELECT        A.AuditID, 
A.FileID, 
A.Description, 
A.UserID, 
IU.FirstName + ' ' + IU.LastName AS UserName, 
FM.FileNumber, 
SWITCHOFFSET(CONVERT(datetimeoffset, A.Date),'-05:00') AS 'LocalDateTime', 
CONVERT(VARCHAR(10), A.Date, 101) AS 'Date', 
CONVERT(VARCHAR(10), A.Date, 14) AS 'UnadjustedTime',
COUNT(FA.FileActionsID) AS ActionCount
FROM            Audit AS A 
INNER JOIN InternalUser AS IU ON A.UserID = IU.InternalUserID 
LEFT OUTER JOIN FileMain AS FM ON A.FileID = FM.FileID
WHERE        (FM.OfficeID = 1) 
AND (A.Description = 'File Opened' 
OR A.Description = 'File Closed') 
AND (A.Date >= GETDATE() - 2) 
AND (IU.InternalUserID IN 
    (
--ID's Go here
    )
)
ORDER BY UserName, A.AuditID

SELECT        IU.FirstName AS NAME, 
COUNT(FA.FileActionsID) AS ActionCount
FROM            FileActions AS FA 
INNER JOIN InternalUser AS IU ON FA.ReceivedUserID = IU.InternalUserID
WHERE        (FA.ReceivedDate > GETDATE() - 0) 
AND (FA.ReceivedUserID IN   (
--ID's go here
    )
)
GROUP BY IU.FirstName

您的加入顺序错误。当前,当您仅提及FileMainInternalUser(按照此顺序)时,您正在尝试加入InternalUserFileActions - 您无法针对尚未引入加入的表格指定条件:

FROM            FileMain fm
INNER JOIN InternalUser AS IU ON fa.InternalUserID = IU.InternalUserID 
JOIN FileActions FA on FA.FileID = FM.FileID
LEFT OUTER JOIN Audit AS A ON A.FileID = FM.FileID

应该是(添加了强制性模式前缀):

FROM dbo.FileMain fm
INNER JOIN dbo.FileActions FA on FA.FileID = FM.FileID
INNER JOIN dbo.InternalUser AS IU ON FA.InternalUserID = IU.InternalUserID 
LEFT OUTER JOIN dbo.Audit AS A ON A.FileID = FM.FileID

最新更新