Sql 我得到了空字段,即使那里有数据

Sql 我得到了空字段,即使那里有数据,sql,sql-server,sql-server-2008,tsql,ssms,Sql,Sql Server,Sql Server 2008,Tsql,Ssms,我的代码有什么问题吗,因为所有的表中都有数据,但我在结果中得到的只是第一个表(pcbor.typeid)中的数据,其余的是N/A?您正在应用左连接,并且您也没有检查Isnull,因为可能由于左连接而给出null值,并且“N/A”将在那里,您将加入3个不同的表,这些表为每个ProcenterId返回不同的行,因此“N/A”将在那里 请参阅下面的附加图像(我从您的场景中了解的内容) 从语法上说,我看不出有什么不对-试着一次取出一个连接(从末尾开始),看看这是否能揭示您的问题。也可以从取出案例陈述开始

我的代码有什么问题吗,因为所有的表中都有数据,但我在结果中得到的只是第一个表(pcbor.typeid)中的数据,其余的是N/A?

您正在应用左连接,并且您也没有检查Isnull,因为可能由于左连接而给出null值,并且“N/A”将在那里,您将加入3个不同的表,这些表为每个ProcenterId返回不同的行,因此“N/A”将在那里

请参阅下面的附加图像(我从您的场景中了解的内容)


从语法上说,我看不出有什么不对-试着一次取出一个连接(从末尾开始),看看这是否能揭示您的问题。也可以从取出案例陈述开始(仅显示
XXX.TypeID
以确保数据符合您的预期。逐个删除连接并检查是否导致不返回数据尝试设置SQL FIDLE。如果您的代码运行,我们在这方面除了说数据中没有值之外没有什么可做的。我将检查您的
连接
条件,b但是您甚至没有为推测提供足够的信息。我假设,正如您所说,您得到的是空白字段,返回的是行,但数据显示为空白。您可以尝试删除[structure]=和[type]=(或者在select语句中指定*)。另外,在连接中明确说明也是一个好主意。.“连接”是一个“内部连接”吗?不是你问题的答案,但为什么所有的nolock提示?你对丢失和/或重复的数据满意吗?
SELECT 
 [Structure]=mpc.StructureName
 ,[Type]=CASE pcbor.TypeId 
             WHEN '0080' THEN 'type1'
             WHEN '1845' THEN 'type2'
             WHEN '0125' THEN 'type3'
             Else 'N/A' END
 ,Type_De=CASE pcde.TypeId WHEN '0040' THEN 'Type99' Else 'N/A' END 
 ,Type_Ee=CASE pcee.TypeId WHEN '1525' THEN 'Type98'
                           WHEN '1530' THEN 'Type97' Else 'N/A' END
 ,Type_Lt=CASE pclt.TypeId WHEN '1525' THEN 'Type96'
                           WHEN '1530' THEN 'Type95' Else 'N/A' END

FROM [static].[MPC] with (nolock)
     JOIN [static].[MPCCenter] mpcpc with (nolock) ON mpcpc.MPCId = mpc.MPCId
     JOIN [static].[ProCenter] pc with (nolock) ON pc.ProCenterId = mpcpc.ProCenterId
    LEFT JOIN [static].TypeBor pcbor with (nolock) ON pcbor.ProCenterId = pc.ProCenterId
    LEFT JOIN [static].Type_De pcde with (nolock) ON pcde.ProCenterId = pc.ProCenterId
    LEFT JOIN [static].Type_Ee pcee with (nolock) ON pcee.ProCenterId = pc.ProCenterId
    LEFT JOIN [static].Type_Lt pclt with (nolock) ON pclt.ProCenterId = pc.ProCenterId