这个很难解释。我正在尝试在我的选择插入新表中执行 Row_Number() Over(Order by PickedDate)。
这适用于生产 1,2,3,4,5,6,7,但这不是我想要做的。我希望为每组水果生成第一行。
例如,我尝试插入以下表结构;ItemOrder int, FruitType nvarchar(100),DatePicked 日期时间,
有以下数据
水果类型|采摘日期 苹果|2012 年 10 月 1 日 苹果|2012 年 10 月 3 日 苹果|2012 年 10 月 2 日 李子|9/13/2011 李子|9/14/2011 李子|9/15/2011 樱桃|12/2/2012 樱桃|12/4/2012
我试图得到以下结果
FruitType|DatePicked|ItemOrder 苹果|10/1/2012|1 苹果|10/3/2012|3 苹果|10/2/2012|2 李子|2011/9/13|1 李子|2011/9/14|2 李子|2011/9/15|3 樱桃|12/2/2012|1 樱桃|12/4/2012|2
帮助大家
创建表#FruitStandPicked
(
FruitType NVARCHAR (100),
日期选择日期时间
);
插入#FruitStandPicked(FruitType,DatePicked)
值('Apple','10/1/2012'),
(“苹果”,“2012 年 10 月 3 日”),
(“苹果”,“2012 年 10 月 2 日”),
(“李子”,“2011 年 9 月 13 日”),
(“李子”,“2011 年 9 月 14 日”),
(“李子”,“2011 年 9 月 15 日”),
(“樱桃”,“2012 年 12 月 2 日”),
(“樱桃”,“2012 年 12 月 4 日”);
创建表#FruitStandTable
(
项目订单INT,
FruitType NVARCHAR (100),
日期选择日期时间
);
--这需要调整
插入#FruitStandTable(ItemOrder、FruitType、DatePicked)
SELECT row_number () OVER (ORDER BY fruittype, datepicked),
水果类型,
选择日期
来自#FruitStandPicked;
从#FruitStandTable中选择*;
删除表#FruitStandTable;
删除表#FruitStandPicked;
同样,这在下订单的范围内有效,但我也需要通过分组来下订单。
提前致谢!