Вернуть столбец, который представляет собой разницу между ближайшим значением ниже значения столбца - PullRequest
0 голосов
/ 16 октября 2011

Я продолжаю думать, что у меня есть решение, но оно не работает. У меня есть две таблицы. В первой таблице есть столбец со строками (например, числа от 1 до 100). Во второй таблице есть, скажем, 3 строки со значениями 9, 53, 78. (они являются случайными и могут быть, два или четыре значения) Я хочу вернуть строки из 3 столбцов: Nrs 1 -100, самый большой из (9, 53, 78), который меньше или равен (1-100), и разница между этим самым большим числом и столбцом (1- 100)

1 Ответ

0 голосов
/ 16 октября 2011

Для значений от 1 до 8 вы получите NULL из OUTER APPLY .

SELECT 
  N.Number, -- 1 to 100
  foo.TheValue, -- which is smaller or equal to (1-100) 
  (N.Number - foo.TheValue) -- difference between largest number and the column (1-100)
FROM
  NumberTable N
  OUTER APPLY
  (
  SELECT
     MAX(TheValue) AS Value1
  FROM
     TheOtherTable
  HAVING
     MAX(TheValue) <= N.Number
  ) foo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...