字段自增问题

Robert 2007-10-30 02:17:42
子段自增问题
表结构如下:
CREATE TABLE [dbo].[tblLowMarginCustomer] (
[BU] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[No] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[CustomerCode] [nvarchar] (100) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,
[ExportDate] [nvarchar] (10) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL
) ON [PRIMARY]

每个月的月初把从其他视图中取到的数据(仅抽取BU和CustomerCode这2个字段)放到这个tblLowMarginCustomer表中(每个月仅仅执行一次,且取的记录的个数也不相同),
其中ExportDate字段是保存每次往该表中导出时的日期的字符串值
[No]字段是每次 insert into 之后再用update语句更新这个字段的值,
现在的问题就是这个update语句的问题,

从07年8月份开始往tblLowMarginCustomer表导数据,每次导数据时,CustomerCode都不会重复(但可以与其他月导出的数据重复)
每个月更新[No]字段的值时,只能更新当月导过来的数据,而不能更新其他月份导过来的数据(这个可以用ExportDate字段来做条件)
[No]字段的的值是根据CustomerCode字段产生的,比如8月份第一次导来得数据有3个CustomerCode(比如是A,B,C),即3条纪录,那么这3个记录的[No]依次为 0001, 0002, 0003
,当9月份再往该表导数据时,如果还是8月份产生的上面那3个A,B,C记录的话,则对应的[No]分别是不变的,如果有一个纪录不是8月份中已经存在的记录,那么该纪录的[No]就等于原来已经存在的[No]值的最大值+1,即0004
例如下:
dcc 0001 A 2007-08-31
dcc 0002 B 2007-08-31
dcc 0003 C 2007-08-31
dcc 0001 A 2007-09-30
dcc 0002 B 2007-09-30
dcc 0003 C 2007-09-30
dcc 0004 D 2007-09-30
dcc 0002 B 2007-10-31
dcc 0003 C 2007-10-31
dcc 0005 E 2007-10-31
dcc 0006 F 2007-10-31
dcc 0003 C 2007-11-30
dcc 0004 D 2007-11-30
dcc 0005 E 2007-11-30
dcc 0007 G 2007-11-30

在线等,多谢各位帮忙,
上一个帖子也有回复的,但是答案我试了下都不符号要求
...全文
102 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧