у меня есть следующие 3 таблицы
CREATE TABLE [dbo].[dspartner](
[dspartnerid] [bigint] IDENTITY(1,1) NOT NULL,
[name] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[priority] [int] NULL)
CREATE TABLE [dbo].[hotels](
[hotelid] [int] PRIMARY KEY IDENTITY(1,1) NOT NULL,
[name] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[DSPartnerid] [bigint] NULL,
)
CREATE TABLE [HotelSourceMap](
[hotelsourcemapid] [bigint] PRIMARY KEY IDENTITY(1,1) NOT NULL,
[dspartnerid] [bigint] NOT NULL,
[hotelid] [bigint] NOT NULL,
[dshotelid] bigint
)
Ситуация такая:
Я хочу, чтобы таблица: dspartner содержал подробную информацию о партнере источника данных.
таблица: отели содержат информацию об отелях
таблица: HotelSourceMap содержит запись hotels.hotelid, dsparnter.dspartnerid
новый, я хочу обновить таблицу отелей, чтобы установить hotels.dspartner = hotelsourcemap.dspartnerid
где
hotels.hotelid = hotelsourcemap.hotelid
и hotelsourcemap.dspartnerid = dspartner.dspartnerid (где приоритетное значение для dspartnerid высокое)
Примечание: -приоритет содержит значение int, а значение max int будет рассматриваться как максимальный приоритет. если два dspartner имеют одинаковый приоритет, тогда получите любой из них
sql server 2005