我需要使用计算列规范插入基于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,然后递增。
答案 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