【发布时间】:2016-10-04 19:02:41
【问题描述】:
我一直在比较两个几乎相同的表,并在第二个表中更新/添加结果。这是我正在使用的两个表。 Person1(ID,Name,PHNumber) 和 Person2(ID,Name,PHNumber,IsActive)。
注意: person1 总是比 person2 有更多/更少/相同的行。Person1 是参考表,我们需要将 person1 int 中存在/不存在的行添加/删除到 person2。 我正在使用 Microsoft SQL Server Management Studio。
案例 1: 如果比较结果有更多行(假设 person1 有 10 行,person2 有 8 行),那么我们需要将这些(2 行)添加到 person2 并为这些行保留 IsActive-1。
案例2:如果比较结果有差异(假设 person1 有 10 行,而 person2 有 20 行),那么我们需要找到那些 delta 10 行并为这 10 行保留 IsActive-0。
希望查询清楚并期待您的宝贵解决方案。谢谢你。
Here Person1 does not contain newdata2 and contains newdata,newdata1 which are
new values after comparing, so we are giving IsActive-0 and IsActive-1
respectively.
Person1:
ID Name PHNumber
1 missouri 123
2 kansas 111
3 stlouise 234
4 california 456
5 india 888
6 srilanka 780
7 dallas 890
8 texas 1111
9 mario 1112
10 sister 7878
11 pontiac 8765
12 newdata 1234
13 newdata1 2345
Person2:
ID Name PHNumber IsActive
1 missouri 123 1
2 kansas 111 1
3 stlouise 234 1
4 california 456 1
5 india 888 1
6 srilanka 780 1
7 dallas 890 1
8 texas 1111 1
9 mario 1112 1
10 sister 7878 1
11 pontiac 8765 1
12 newdata2 987 1
RESULT: Person2:
ID Name PHNumber IsActive
1 missouri 123 1
2 kansas 111 1
3 stlouise 234 1
4 california 456 1
5 india 888 1
6 srilanka 780 1
7 dallas 890 1
8 texas 1111 1
9 mario 1112 1
10 sister 7878 1
11 pontiac 8765 1
12 newdata2 987 0
13 newdata 1234 1
14 newdata1 2345 1
【问题讨论】:
-
哪些匹配列(列中的值相同)使一行“等于”另一行?
-
这很容易。请尝试使用合并/更新语句并返回给我们。 technet.microsoft.com/en-us/library/bb522522(v=sql.105).aspx
-
MySQL 还是 SQL-Server?你们都标记了...你是什么意思?
-
@pmbAustin 对不起,我的意思是 sql-server,你能帮我解决这个问题吗?谢谢。
标签: sql-server