SQL 服务器计算列给出了不正确的结果

SQL server Computed column giving in-correct result

在 MP_SALESID 中遵循 SQL 语句 returns NULL。但是,如果我将 where KRFPRODUCTIONORDERGROUPiD = 'T1.KRFPRODUCTIONORDERGROUPID' 替换为 T1.KRFPRODUCTIONORDERGROUPID 的实际值,那么我将在 MP_SalesId 中得到一个值。我在这里错过了什么?在过去的 12 个小时里,我一直在与它作斗争:(

   SELECT T1.KRFPRODUCTIONORDERGROUPID AS KRFPRODUCTIONORDERGROUPID, 
   (CAST ((select top(1) salesId from salesLine 
   join INVENTTRANSORIGIN as SalesLineInventTransOrigin on 
   SalesLineInventTransOrigin.INVENTTRANSID = salesLine.INVENTTRANSID 
   join InventTrans as ProdTableInventTrans on 
   ProdTableInventTrans.MARKINGREFINVENTTRANSORIGIN = 
   SalesLineInventTransOrigin.RECID 
   join INVENTTRANSORIGIN as ProdTableInventTransOrigin on 
   ProdTableInventTransOrigin.recid = 
   ProdTableInventTrans.INVENTTRANSORIGIN 
   join ProdTable on ProdTableInventTransOrigin.INVENTTRANSID = 
   PRODTABLE.INVENTTRANSID 
   where KRFPRODUCTIONORDERGROUPiD = 'T1.KRFPRODUCTIONORDERGROUPID') 
   AS NVARCHAR(20))) AS MP_SALESID
   FROM PRODTABLE T1

不要在 T1.KRFPRODUCTIONORDERGROUPID

周围使用单引号 (')
SELECT T1.KRFPRODUCTIONORDERGROUPID AS KRFPRODUCTIONORDERGROUPID, 
   (CAST ((select top(1) salesId from salesLine 
   join INVENTTRANSORIGIN as SalesLineInventTransOrigin on 
   SalesLineInventTransOrigin.INVENTTRANSID = salesLine.INVENTTRANSID 
   join InventTrans as ProdTableInventTrans on 
   ProdTableInventTrans.MARKINGREFINVENTTRANSORIGIN = 
   SalesLineInventTransOrigin.RECID 
   join INVENTTRANSORIGIN as ProdTableInventTransOrigin on 
   ProdTableInventTransOrigin.recid = 
   ProdTableInventTrans.INVENTTRANSORIGIN 
   join ProdTable on ProdTableInventTransOrigin.INVENTTRANSID = 
   PRODTABLE.INVENTTRANSID 
   where KRFPRODUCTIONORDERGROUPiD = T1.KRFPRODUCTIONORDERGROUPID) 
   AS NVARCHAR(20))) AS MP_SALESID
   FROM PRODTABLE T1