Если вы смотрите на список всех несогласованных столбцов, то смотри ниже пример
CREATE TABLE TableA
([Product] varchar(1), [Qty] int, [Price] int, [Comments] varchar(3))
;
INSERT INTO TableA
([Product], [Qty], [Price], [Comments])
VALUES
('A', 20, 500, 'xyz'),
('B', 50, 200, 'xyz'),
('C', 90, 100, 'abc'),
('D', 50, 500, 'xyz')
;
CREATE TABLE TableB
([Product] varchar(1), [Qty] int, [Price] int, [Comments] varchar(3))
;
INSERT INTO TableB
([Product], [Qty], [Price], [Comments])
VALUES
('B', 70, 200, 'cv'),
('C', 90, 200, 'wsd'),
('D', 40, 400, 'xyz'),
('E', 50, 500, 'xyz')
;
SELECT b.Product,
b.Qty,
b.Price,
Result = CASE WHEN a.product IS NULL THEN 'New'
ELSE 'Updated: ' +
STUFF( CASE WHEN a.Qty != b.Qty THEN ',Qty' ELSE '' END +
CASE WHEN a.Price != b.Price THEN ',Price' ELSE '' END,
1, 1, '')
END
FROM TableB b
LEFT JOIN TableA a
ON a.Product = b.Product
WHERE a.Product IS NULL
OR a.Qty != b.Qty
OR a.Price != b.Price
union
SELECT
a.Product,a.Qty,a.Price, 'NewA' as Result
FROM
TABLEA a left join
TABLEB b on a.Product = b.Product
WHERE b.Product is null
модифицированную версию раствора при SQL Server 2008 compare two tables in same database and get column is changed
http://sqlfiddle.com/#!3/d1b3f/3
Делитесь своими табличные структуры и данные – AK47
И то, что вы получили до сих пор –
Привет Джим, До сих пор я могу получить несоответствующие данные из обеих таблиц, но требует только mistached столбцов в операторе отбора –