2012-03-05 56 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