Разделение данных из одного столбца на несколько столбцов и выбор данных из нескольких таблиц
Привет Ребята,
Итак, у меня есть данные, которые хранятся в одном столбце, и я хочу разделить их с помощью разделителя пространства. Я достиг этого, но я хочу иметь возможность выбирать другие данные, которые мне не нужно будет разбивать на результаты в качестве отчета.
Например,
Таблица 1: Сведения о сотрудниках
Таблица 2: Заработная Плата
Таблица 3: Департаменты
Теперь есть идентификатор, который связывает все эти таблицы, который является одним и тем же. Но я должен был уметь выбирать данные из всех этих таблиц, а также уметь делать разделение с помощью разделителя. Ниже приводится то, что я сделал до сих пор:
Вот оператор select, который у меня был до разделения, теперь я хочу разделить только столбец в одной таблице, но связать все таблицы вместе и отобразить результаты, которые я сделал с помощью этого оператора:
select distinct f.fle_id, f.filename, c.clp_clip_name, f.FileExtension, c.locationsList, f.UNC, f.Directory, f.framerate from lls_clips C with (NOLOCK) inner join lls_fileimports F with (NOLOCK) on c.fle_id = f.fle_id inner join lls_jobs J with (NOLOCK) on c.fle_id = j.fle_id where J.LastUpdated >= dateadd(day, -1, getdate())
Что я уже пробовал:
declare @delimiter Varchar(50) Set @delimiter = ' ' ;WITH CTE As ( select [LocationsList], [clp_clip_name], CAST('<m>' + Replace([LocationsList], @delimiter , '</m><m>') + '</m>' AS XML) AS [LocationsList XML] From [lls_clips] ) Select distinct [clp_clip_name], [locationsList], [LocationsList XML].value('/M[1]', 'varchar(50)') As [First Location], [LocationsList XML].value('/M[2]', 'varchar(50)') As [Second Location], [LocationsList XML].value('/M[3]', 'varchar(50)') As [Third Location], [LocationsList XML].value('/M[4]', 'varchar(50)') As [Fourth Location], [LocationsList XML].value('/M[5]', 'varchar(50)') As [Firth Location], [LocationsList XML].value('/M[6]', 'varchar(50)') As [Sixth Location] From CTE GO
******ПРИМЕЧАНИЯ НИЖЕ******
--Вот другие таблицы, которые я хочу связать с [Files table - Files F] и [Jobs J]
--поля из файлов включают - F. FL_ID, f.filename, f.uncpath, f.direcotry
--поля из заданий включают J. FL_ID, J. filename
--поля из приведенной выше таблицы lls_clips включают C. FL_ID, C. filename и так далее
--Поэтому мне нужно иметь возможность связать все эти данные вместе в одном отчете. Единственный столбец, который я разделяю, находится в одной таблице, которая является таблицей LLS_Clips
ZurdoDev
Где ты застрял? В чем заключается ваш вопрос?
Geofferz
просто обновил вопрос, это оператор select, который я должен был вернуть все данные из разных таблиц без разделения столбцов:
выбор различных Ф.fle_id,
Ф.именем,
гр.clp_clip_name,
Ф.Расширение,
гр.locationsList,
Ф.UNC-пути,
Ф.Каталог,
Ф.кадров
из lls_clips C с (NOLOCK)
внутреннее соединение lls_fileimports F с (NOLOCK)
на c.fle_id = f.fle_id
внутреннее соединение lls_jobs J с (NOLOCK)
на c.fle_id = j.fle_id
где J. LastUpdated >= dateadd(day, -1, getdate())
John C Rayan
Разве вы не можете объединить их в общее табличное выражение перед получением результирующего набора XML?