如何在小于T-SQL中的值的最近记录上加入

时间:2017-09-29 16:05:15

标签: sql-server-2008 tsql

在此示例中,我在table列中有一个1,3,4,8的表{}},在value列中有一个偶数的表lookup列。

我想运行一个看起来像这样的查询

starting

但仅加入最低SELECT value, starting FROM table LEFT JOIN lookup ON lookup.starting < value 小于starting的行。

预期输出看起来像这样

value

2 个答案:

答案 0 :(得分:1)

我建议这样做:

SELECT value, starting
FROM table
CROSS APPLY (select top 1 starting from lookup where lookup.starting < value order by value desc) as subquery(starting)

顶部和订单部分将协同工作,以确保您只获得一个合适的结果。

答案 1 :(得分:0)

var Set = "BENELUX,Luxembourg,PP3a,Western_Europe,France,PP6a".split(',');

var Aggreg = [],
    Country = [],
    Product = [];


Set.forEach(function(item, index) { //For each item in the array
  switch (index % 3) {              //Get remainder of index/3
    case 0:
      Aggreg.push(item);            //If 0, Aggreg
      break;
    case 1:
      Country.push(item);           //If 1, Country
      break;
    case 2:
      Product.push(item);           //If 2, Product
  }
})

console.log(Aggreg, Country, Product);