Я не уверен, правильно ли я пишу следующий оператор SQL? (С использованием T-SQL)
У меня есть две таблицы:
Таблица 1: [dbo]. [T_Orgnzs]
[id] = INT
[nm] = NVARCHAR(256)
Таблица 2: [dbo]. [T_Usrs]
[id] = INT
[ds] = NVARCHAR(256)
[oid] = INT (referenced [dbo].[t_Orgnzs].[id])
Мне нужно выбрать элементы из Таблицы 2, упорядоченные по столбцу [oid] в порядке возрастания от 1 до 16, но выгода в том, что [oid] ссылается на строку в Таблице 1, которую мне действительно нужно вернуть как результат.
Так, скажем, если таблицы были накрыты так:
Таблица 1:
id nm
1 Name 1
2 Name 2
3 Name 3
4 Name 4
И Таблица 2:
id ds oid
1 A 2
2 B 4
3 C 1
Полученный запрос должен вернуть:
3 C Name 1
1 A Name 2
2 B Name 4
Итак, вот SQL, который я использую:
WITH ctx AS (
SELECT [id],
[ds],
(SELECT [nm] FROM [dbo].[t_Orgnzs] WHERE [id]=[dbo].[t_Usrs].[oid]) AS organizName,
ROW_NUMBER() OVER (ORDER BY organizName ASC) AS rowNum
FROM [dbo].[t_Usrs]
)
SELECT [id], [ds], organizName
FROM ctx
WHERE rowNum>=1 AND rowNum<=16;
И я получаю сообщение об ошибке: «Недопустимое имя столбца OrganName».