2012-03-05 53 views
0

插入值,我需要使用计算列规范插入基于year_num值(在SQL Server DB)我需要根据YEAR_NUM

例子:

如果一年2012然后将第一排它将2012_1下一次2012_2 ...如果今年是2013则第1次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 

我需要sales_order的计算基于对YEAR_NUM每年都NUM必须重置为1,然后递增为自动。

回答

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

+0

这是我的表结构Sales_OrderID \t数字(4,1)\t 客户编号\t为nvarchar(50)\t Prod_Type \t varchar(50)\t Prod_Family \t为nvarchar(30)\t Order_Qty \t INT \t ORDER_DATE \t日期时间 Mfg_StDate \t日期时间 Mfg_Plan_EndDate \t日期时间 Shipment_Date \t日期时间\t Shipment_Tracking_No \t VARCHAR(20) FinishedQty \t INT \t ORDER_STATUS \t VARCHAR(50) Last_ActivitiyTime \t datetime我需要sales_order根据year_num自动计算每年的num_num st重置为1,然后增加 – sarvan 2012-03-05 11:10:43

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