SQL公共表表达式(CTE)联接';它不工作了

SQL公共表表达式(CTE)联接';它不工作了,sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,给任何能帮忙的人。我不是T-SQL的专家,所以我来这里寻求一些指导。我有一个公共表表达式,其中有两列具有用户id。我需要根据这些ID从用户表中获取名称,以便显示名称。将我的CTE与内部联接一起使用会减少我的记录数,我不知道为什么 更新很抱歉,我应该说得更清楚一些。没有错误。意外的结果。在加入之前,我返回了135条记录。通过连接,我得到6 以下是SQL: ;WITH CTE AS (SELECT *, ROW_NUMBER() OVER (PARTITION BY

给任何能帮忙的人。我不是T-SQL的专家,所以我来这里寻求一些指导。我有一个公共表表达式,其中有两列具有用户id。我需要根据这些ID从用户表中获取名称,以便显示名称。将我的CTE与内部联接一起使用会减少我的记录数,我不知道为什么


更新很抱歉,我应该说得更清楚一些。没有错误。意外的结果。在加入之前,我返回了135条记录。通过连接,我得到6

以下是SQL:

;WITH CTE
    AS (SELECT *,
            ROW_NUMBER() OVER (PARTITION BY [ChangeRequests].[F0] 
                                    ORDER BY [ChangeRequests].[F8] DESC) AS RN
        FROM [S37] AS [ChangeRequests])
SELECT [CTE].[F0] AS [ID]
    ,[CTE].[F8] AS [RevisionNumber]
    ,[CTE].[F18] AS [ChangeNumber]
    ,[CTE].[F19] AS [Synopsis]
    --,[CTE].[F30] AS [Responsibility]
    ,[CTE].[F32] AS [Description]
    ,(CASE [CTE].[F42] WHEN 0 THEN NULL ELSE dbo.ConvertSTTimestamp([CTE].[F42]) END) AS [EnteredOn]
    ,[CTE].[F51] AS [Usr_Project]
    --,[CTE].[F52] AS [Usr_CoResponsibility]
    ,[CTE].[F59] AS [Usr_ReportedBy]
    ,[CTE].[F61] AS [Usr_StarFlowStatus]
    ,[Users1].[F7] AS [Responsibility]
    ,[Users2].[F7] AS [CoResponsibility]
FROM CTE
INNER JOIN [S3] [Users1] ON [Users1].[F0] = [CTE].[F30]
INNER JOIN [S3] [Users2] ON [Users2].[F0] = [CTE].[F52]
WHERE (RN = 1)
如何基于我的2个用户ID列进行连接以获取用户名


谢谢

内部连接
s更改为
左连接
s,并告诉我们您得到了什么,如果它更接近您想要/期望的…

内部连接
s更改为
左连接
s,并告诉我们您得到了什么,如果它更接近您想要/期望的…

定义“不工作”?错误,意外的结果?请举例说明你从什么开始,你期望得到什么,你实际得到了什么。很抱歉,我应该说得更清楚。没有错误。意外的结果。在加入之前,我返回了135条记录。通过连接我得到6.定义“不工作”?错误,意外的结果?请举例说明你从什么开始,你期望得到什么,你实际得到了什么。很抱歉,我应该说得更清楚。没有错误。意外的结果。在加入之前,我返回了135条记录。通过连接,我得到6。