各位老师好,以下有两个表,在设计上有一定缺陷,现在想通过SQL语句的关联来弥补该缺陷。
CREATE TABLE #TMP_A
(
ID INT,
SALEID INT,
TENDER INT,
AMT NUMERIC(16,4)
)
INSERT INTO #TMP_A VALUES (1,123,2001,60)
INSERT INTO #TMP_A VALUES (2,123,2001,20)
INSERT INTO #TMP_A VALUES (3,123,2001,60)
INSERT INTO #TMP_A VALUES (4,123,2001,60)
CREATE TABLE #TMP_B
(
SALEID INT,
TENDER INT,
AMT NUMERIC(16,4),
MEMO1 NVARCHAR(500),
MEMO2 NVARCHAR(500)
)
INSERT INTO #TMP_B VALUES (123,2001,60,'C','D')
INSERT INTO #TMP_B VALUES (123,2001,60,'E','F')
INSERT INTO #TMP_B VALUES (123,2001,20,'C','D')
INSERT INTO #TMP_B VALUES (123,2001,60,'C','D')
SELECT * FROM #TMP_A
SELECT * FROM #TMP_B
以上两表在数据结构设计上表B缺少了与表A直接关联的ID字段。
现在需求是通过SQL语句补上表B中与表A相匹配的ID字段(通俗说就是在两表关联后加上ID字段),请各位支招,在此多谢。
------解决方案--------------------
b.saleid=a.saleid AND b.TENDER=a.TENDER AND b.AMT=a.AMT 这三列无法唯一标识一行,匹配A表的话会多出好多数据
------解决方案--------------------
SALEID INT,
TENDER INT,
AMT NUMERIC(16,4) 这三类有重复数据的话很难。