这个很难解释。我正在尝试在我的选择插入新表中执行 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;
同样,这在下订单的范围内有效,但我也需要通过分组来下订单。
提前致谢!