Sql 基于另一个表选择列值
我有两个表,其中一个包含许多字段,包括fldANA和fldPROD,另一个表包含相同的两个字段。并非所有fldANA和fldPROD字段在表2中都有匹配值,因此我不知道是否真的可以加入这些字段?下面是我的查询当前的样子,但它返回的记录比预期的多10或1000条Sql 基于另一个表选择列值,sql,sql-server-2008,Sql,Sql Server 2008,我有两个表,其中一个包含许多字段,包括fldANA和fldPROD,另一个表包含相同的两个字段。并非所有fldANA和fldPROD字段在表2中都有匹配值,因此我不知道是否真的可以加入这些字段?下面是我的查询当前的样子,但它返回的记录比预期的多10或1000条 SELECT Line#, CastID, (CASE WHEN #sRst1.PROD = FN_qryIDs.fldANA AND #sRst1.PROD =
SELECT Line#, CastID,
(CASE WHEN #sRst1.PROD = FN_qryIDs.fldANA AND #sRst1.PROD =
FN_qryIDs.fldPROD
THEN FN_qryIDs.fldANA ELSE #sRst1.ANA END) AS ANA,
(CASE WHEN #sRst1.PROD = FN_qryIDs.fldANA AND #sRst1.PROD =
FN_qryIDs.fldPROD
THEN FN_qryIDs.fldCONN ELSE #sRst1.CONN END) AS CONN
INTO #sRst2
FROM #sRst1
WHERE CastID <> '' AND PROD <> '' AND ANA <> ''
嗯,不确定源模式,但希望这至少能让您走上正确的道路
SELECT R1.[Line#], R1.CastID
,ISNULL(Q.fldANA, R1.ANA) [ANA]
,ISNULL(Q.fldCONN, R1.CONN) [Conn]
FROM #sRst1 R1
LEFT JOIN FN_qryIDs Q ON Q.fldANA = R1.PROD
AND Q.fldPROD = R1.PROD
WHERE R1.CastID <> ''
AND R1.Prod <> ''
AND R1.ANA <> ''
您是否尝试左键联接两个表。从fn_qryIDs t1左键选择*在t1.fldANA=t2.ANA和t1.fldPROD=t2.PROD上连接sRst1 t2