【发布时间】:2020-06-16 09:46:32
【问题描述】:
我有 4 个表共享相同的 PK usercode。我需要根据用户代码从每个表中检索各种列。例如:
- T1(用户代码,A1,A2,A3,...)
- T2(用户代码,B1,B2,B3,...)
- T3(用户代码,C1,C2,C3,...)
- T4(用户代码,D1,D2,D3,...)
我尝试了以下方法:
SELECT A1, A2, B3, B4, C2, D1, D4
FROM T1 A
JOIN T2 B ON a.usercode = b.usercode
JOIN T3 C ON b.usercode = c.usercode
JOIN T4 D ON c.usercode = d.usercode
当我这样做时,我会得到重复的结果。最好的方法是什么?
另外,每当我使用UNION 时,我都会收到错误消息
将数据类型 varchar 转换为数值时出错
我要疯了,任何线索都会有所帮助!谢谢
【问题讨论】:
-
主键列无法合理地生成重复项。请提供示例数据、当前和期望的结果来展示您的用例。
-
这个问题没有意义。我投票关闭。
-
发布表模式。尝试 UNION 时遇到数据类型不匹配。您需要确定哪个字段不匹配,执行 to_char() 或 to_number() 之类的操作以将值转换为匹配的数据类型。您应该能够 SELECT DISTINCT 删除重复项,可能。
-
样本数据和期望的结果会有所帮助。
标签: sql-server join ssms union