我想将批号分配给表中的特定行

时间:2015-06-12 08:41:58

标签: sql sql-server stored-procedures sql-server-2012

我的表结构是

BatchID|BatchName|StartDate|NoOfTrainee|LotNo

我想根据StartDate对表进行排序并相应地分配批号。

当学员人数达到最少100人时,将为批次分配第1批号码。 例如:

BatchId|BatchName|StartDate|NoOfTrainee|LotNo
1|  mum1|   2015-06-01| 25| NULL
2|  del2|   2015-06-01| 30| NULL
3|  cal1|   2015-06-02| 35| NULL
4|  bang1|  2015-06-02| 20| NULL
5|  bang2|  2015-06-03| 40| NULL
6|  del1|   2015-06-05| 30| NULL
7|  mum2|   2015-06-06| 25| NULL

第1,2,3,4行将被分配批次1,因为它们的总和达到100。 接下来将为100名受训人员分配2号批次

1 个答案:

答案 0 :(得分:1)

您可以使用Helper.GetIntFromData(packetData, offset, length); Helper.GetIntFromData(obj.GetData(true), 7 + GetOffset( item.GetData() ) , length1 / length2 ); ROW_NUMBER来实现您的需求。

SUM OVER()

SQL Fiddle