Я работаю над сравнением двух почти идентичных таблиц и обновлением/добавлением результата во вторую таблицу. Вот две таблицы, которые я использую. Person1 (ID, имя, номер PHNumber) и Person2 (ID, имя, PHNumber, IsActive).сравнить две таблицы и добавить результат во вторую таблицу
Примечание: У человека 1 всегда больше/меньше/того же ряда, чем person2.Person1 является справочной таблицей, нам нужно добавлять/удалять строки, которые/не представляют собой person1 int человеку2. Я использую студию управления сервером Microsoft SQL Server.
Вариант 1: Если сравнить результат имеет больше строк (Пусть говорят person1 имеет 10, PERSON2 имеет 8rows), то мы должны добавить (2Rows) в PERSON2 и держать IsActive-1 для этих строк.
Вариант 2: Если сравниваемый результат имеет differnce (Пусть говорят person1 имеет 10, но PERSON2 имеет 20rows), то мы должны найти эти дельта 10rows и держать IsActive-0 для тех 10rows.
Надеемся, что запрос станет понятным и ожидающим ваших ценных решений. Спасибо.
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 \t missouri 123
2 \t kansas 111
3 \t stlouise 234
4 \t california 456
5 \t india 888
6 \t srilanka 780
7 \t dallas 890
8 \t texas 1111
9 \t mario 1112
10 \t sister 7878
11 \t pontiac 8765
12 \t newdata \t 1234
13 \t newdata1 2345
Person2:
ID Name PHNumber IsActive
1 \t missouri 123 1
2 \t kansas 111 1
3 \t stlouise 234 1
4 \t california 456 1
5 \t india 888 1
6 \t srilanka 780 1
7 \t dallas 890 1
8 \t texas 1111 1
9 \t mario 1112 1
10 \t sister 7878 1
11 \t pontiac 8765 1
12 newdata2 987 1
RESULT: Person2:
ID Name PHNumber IsActive
1 \t missouri 123 1
2 \t kansas 111 1
3 \t stlouise 234 1
4 \t california 456 1
5 \t india 888 1
6 \t srilanka 780 1
7 \t dallas 890 1
8 \t texas 1111 1
9 \t mario 1112 1
10 \t sister 7878 1
11 \t pontiac 8765 1
12 newdata2 987 0
13 newdata \t 1234 1
14 \t newdata1 2345 1
Какие соответствующие столбцы (где значения в столбцах одинаковы) делают ряд " равно "другому ряду? – granadaCoder
Это очень просто. Попробуйте использовать заявление о слиянии/обновлении и вернитесь к нам. https://technet.microsoft.com/en-us/library/bb522522(v=sql.105).aspx –
MySQL или SQL-Server? Вы оба отметили ... что вы имеете в виду? – pmbAustin