sql server 2008 - SQL return database name in a query comparing one table across three databases -
i have created query compares 1 table across 3 databases.
my query code is:
select item, description, stocked, product_code, cost_method, cost_type ( select item, description, stocked, product_code, cost_method, cost_type [arborg_test_app].[dbo].item union select item, description, stocked, product_code, cost_method, cost_type [teulon_test_app].[dbo].item union select item, description, stocked, product_code, cost_method, cost_type [pa_test_app].[dbo].item ) data group item, description, stocked, product_code, cost_method, cost_type having count(*) = 1 and works great, compares table item across 3 databases , returns rows data in selected columns doesn't match between 3 databases.
my issue is, in results return can't tell row database. query results: 
what need additional column in query results shows database name each row.
because looking singletons, can add db name each subquery , use max() in outer query:
select item, description, stocked, product_code, cost_method, cost_type, max(db) thedb ( select item, description, stocked, product_code, cost_method, cost_type, 'arbord' db [arborg_test_app].[dbo].item union select item, description, stocked, product_code, cost_method, cost_type, 'teulon' [teulon_test_app].[dbo].item union select item, description, stocked, product_code, cost_method, cost_type, 'pa' [pa_test_app].[dbo].item ) data group item, description, stocked, product_code, cost_method, cost_type having count(*) = 1;
Comments
Post a Comment