我需要插入一个基于year_num的值

时间:2012-03-05 10:54:34

标签: sql-server

我需要使用计算列规范插入基于year_num的值(在SQL Server数据库中)

示例:

如果年份是2012年,那么插入第一行将是2012_1下次2012_2 ...如果年份是2013年,那么第一次2013_1,下一个2013_2。 ..

编辑添加:
这是我的表格结构:

Sales_OrderID numeric(4, 1) 
CustomerId nvarchar(50) 
Prod_Type varchar(50) 
Prod_Family nvarchar(30) 
Order_Qty int 
Order_Date datetime 
Mfg_StDate datetime 
Mfg_Plan_EndDate datetime 
Shipment_Date datetime 
Shipment_Tracking_No varchar(20) 
FinishedQty int 
Order_Status varchar(50) 
Last_ActivitiyTime datetime 

我需要根据year_num自动计算sales_order,每年必须将num重置为1,然后递增。

2 个答案:

答案 0 :(得分:0)

使用IDENTITY和2012000001,20120000002等表格的序列号,在新年时根据需要重新种植。或者有两个字段,一年和序列号。

SQL Server auto increment a column without primary key

http://www.techrepublic.com/blog/datacenter/how-do-i-reseed-a-sql-server-identity-column/406

答案 1 :(得分:0)

请尝试以下查询,谢谢:

WITH CustomTable
 AS (SELECT  YEAR(DateColumnName) AS yearsPosition, ROW_NUMBER() 
            OVER (PARTITION BY YEAR(DateColumnName) 
            ORDER BY ( SELECT 0)) RowNumber
       FROM   YourTableName)
    SELECT CAST(yearsPosition AS VARCHAR)+'_'+ CAST(RowNumber AS VARCHAR) 
    FROM CustomTable