我有两个表STR_IndentDetail和PUR_POIndent更新选择与NULL连接值
STR_IndentDetail:
IndentID ItemID POQty D1 D2 D3 RD
--------- ------- ------ ---- --- --- ---
2 1 NULL 10 20 30 NULL
2 6 NULL 20 40 60 45
PUR_POIndent:
POID IndentID ItemID Quantity D1 D2 D3 RD
------ ---------- ------ ---------- ---- --- --- ---
2 2 1 55 10 20 30 NULL
2 2 6 100 20 40 60 45
我想更新与PUR_POIndent表数量STR_IndentDetail表POQty。 我已经写了两个基于INNER JOIN和LEFT OUTER的Update语句。但是这两个查询只更新列D1,D2,D3和RD中具有值的一行。 包含具有NULL值的列RD的行未获取UPDATE。如何为这种情况编写更新声明。以下是我的两个更新陈述。
通过内加入:
UPDATE STR_IndentDetail
SET
POQty = PUR_POIndent.Quantity
FROM
PUR_POIndent
WHERE
PUR_POIndent.IndentID = STR_IndentDetail.IndentID AND
PUR_POIndent.ItemID = STR_IndentDetail.ItemID AND
PUR_POIndent.D1 = STR_IndentDetail.D1 AND
PUR_POIndent.D2 = STR_IndentDetail.D2 AND
PUR_POIndent.D3 = STR_IndentDetail.D3 AND
PUR_POIndent.RD = STR_IndentDetail.RD
AND PUR_POIndent.POID = 2
基于左连接:
UPDATE STR_IndentDetail
SET
POQty = PUR_POIndent.Quantity
FROM
STR_IndentDetail LEFT OUTER JOIN PUR_POIndent ON
PUR_POIndent.IndentID = STR_IndentDetail.IndentID AND
PUR_POIndent.ItemID = STR_IndentDetail.ItemID AND
PUR_POIndent.D1 = STR_IndentDetail.D1 AND
PUR_POIndent.D2 = STR_IndentDetail.D2 AND
PUR_POIndent.D3 = STR_IndentDetail.D3 AND
PUR_POIndent.RD = STR_IndentDetail.RD WHERE
PUR_POIndent.POID = 2
无论是查询忽略其RD值为NULL的行。 我想更新两个行。这个怎么做?任何建议请。
但如果超过1行空值的那你怎么比较RD值。那会给你错误的信息。 – KuldipMCA
PUR_POIndent表派生自STR_IndentDetail。所以PUR_POIndent表包含与STR_IndentDetail相同的记录 – thevan