Я не уверен, правильно ли я написал следующий оператор SQL? (С помощью T-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;
И я получаю сообщение об ошибке: «Неверное имя столбца« имя_организации ».»
Я немного запутался. Для вашего результата вы можете просто использовать соединение, не так ли? –
Знаете, я не так хорош с SQL. Или, может быть, уже слишком поздно ... Как бы вы это сделали? – ahmd0