0
之间的差值我一直在想我有一个解决方案,但它不工作。我有两个表,第一个表有一个包含行的列(例如数字1到100)。第二个表包含(比如说)3行,值分别为9,53,78(这些都是无关紧要的,可能有一个,两个或四个值) 我想要返回的是3列的行:Nrs 1 -100,(9,53,78)中的最大值,它小于或等于(1-100),并且该最大值和列(1-100)返回列值低于列值
之间的差值我一直在想我有一个解决方案,但它不工作。我有两个表,第一个表有一个包含行的列(例如数字1到100)。第二个表包含(比如说)3行,值分别为9,53,78(这些都是无关紧要的,可能有一个,两个或四个值) 我想要返回的是3列的行:Nrs 1 -100,(9,53,78)中的最大值,它小于或等于(1-100),并且该最大值和列(1-100)返回列值低于列值
对于值1到8,您将从OUTER APPLY获得NULL。
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