SQL两个表的数据分配问题!

随风v5 2009-07-07 11:39:49
求序列号分配问题,两个数据库表: customer(客户表):
ID int
MaxNo int(序列号数量:大于1的整数,每个客户拥有的数量不一定相同)

serial(序列号):
ID int
State nvarchar(10)(状态:未分配\已分配)
SerialNumber nvarchar(20)(序列号)


用SQL语句分配给customer里面相应的序列号数量,客户拥有的序列号不可以相同,求大虾给具体方法,谢谢了!

想了很多时候了,但是都找不到一个比较完美的方法解决.很是着急!!!
...全文
23 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
随风v5 2009-07-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 asdf_ndsc 的回复:]
要用 游标。

循环 CUSTOMER
一个一个CUSTOMER  分配
[/Quote]

呵呵,不是很明白哦...
asdf_ndsc 2009-07-07
  • 打赏
  • 举报
回复
要用 游标。

循环 CUSTOMER
一个一个CUSTOMER 分配
hery2002 2009-07-07
  • 打赏
  • 举报
回复
UPDATE C
SET C.MaxNo =(SELECT COUNT(SerialNumber) FROM [serial] WHERE ID =C.ID)
FROM CUSTOMER C
随风v5 2009-07-07
  • 打赏
  • 举报
回复
分配后 serial表的结果如下:

ID State SerialNumber CustomerName
1 未分配 123-456-a 客户名字1(customer表中MAXNO为1,所以只分一个)
2 未分配 123-456-b 客户名字2(customer表中MAXNO为2,所以只分两个个)
3 未分配 123-456-c 客户名字2
4 未分配 123-456-d 客户名字3(customer表中MAXNO为3,所以只分三个)
5 未分配 123-456-e 客户名字3
6 未分配 123-456-f 客户名字3
。。。。。。。。。。
随风v5 2009-07-07
  • 打赏
  • 举报
回复

customer表:
ID int
MaxNo int(序列号数量:大于1的整数,每个客户拥有的数量不一定相同)
CustomerName nvarchar(20)客户名字

例如:
ID MaxNo CustomerName 客户名字
1 1 客户名字1
2 2 客户名字2
3 3 客户名字3
4 4 客户名字4
5 5 客户名字5
6 5 客户名字6
............

-------------------
serial(序列号):
ID int
State nvarchar(10)(状态:未分配\已分配)
SerialNumber nvarchar(20)(序列号)
CustomerName nvarchar(20)客户名字(没有分配前,该项数据为空,分配后写入客户名字)

例如:

ID State SerialNumber CustomerName
1 未分配 123-456-a
2 未分配 123-456-b
3 未分配 123-456-c
4 未分配 123-456-d
5 未分配 123-456-e
6 未分配 123-456-f
.......
htl258_Tony 2009-07-07
  • 打赏
  • 举报
回复
看不懂,说下想要的结果.
随风v5 2009-07-07
  • 打赏
  • 举报
回复
求序列号分配问题,两个数据库表: customer(客户表):
ID int
MaxNo int(序列号数量:大于1的整数,每个客户拥有的数量不一定相同)
例如:
ID MaxNo
1 1
2 2
3 3
4 4
5 5
6 5
............

-------------------
serial(序列号):
ID int
State nvarchar(10)(状态:未分配\已分配)
SerialNumber nvarchar(20)(序列号)

例如:

ID State SerialNumber
1 未分配 123-456-a
2 未分配 123-456-b
3 未分配 123-456-c
4 未分配 123-456-d
5 未分配 123-456-e
6 未分配 123-456-f
.......


两个表没有什么关联的.
htl258_Tony 2009-07-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 javarike 的回复:]
求序列号分配问题,两个数据库表: customer(客户表):
ID            int
MaxNo          int(序列号数量:大于1的整数,每个客户拥有的数量不一定相同)

serial(序列号):
ID            int
State          nvarchar(10)(状态:未分配\已分配)
SerialNumber    nvarchar(20)(序列号)


用SQL语句分配给customer里面相应的序列号数量,客户拥有的序列号不可以相同,求大虾给具体方法,谢谢了!

想了很多时候了,但是都找不到一个比较完美的方法解决.很是着急!!!
[/Quote]

建议上点数据.
hery2002 2009-07-07
  • 打赏
  • 举报
回复
做个存储过程或者触发器.
更改客户表中的MaxNo即可.
UPDATE C
SET C.MaxNo =(SELECT MAX(SerialNumber) FROM [serial] WHERE ID =C.ID)
FROM CUSTOMER C
jiangshun 2009-07-07
  • 打赏
  • 举报
回复
两个表有关联吗?
贴点数据

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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