首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL表插入的有关问题

2013-11-16 
SQL表插入的问题现有tableA单别单号变更版本号121122231451241242243221单别不一样,可能单号一样,变更版本

SQL表插入的问题
现有tableA
单别  单号  变更版本号
1     2      1
1     2      2
2     3      1
4     5      1
2     4      1
2     4      2
2     4      3
2     2      1
单别不一样,可能单号一样,变更版本号依次累加
现在有TABLEB
单别   单号
1     2
2     2
2     4
想要插入TABLEA,并且变更版本累加
求大神   SQL 累加 插入 最大值
[解决办法]
with tb as
(
select b.*, MAX(a.变更版本号)  + 1 as aaa from b
inner join A on a.单别 = b.单别
and a.单号 = b.单号
group by b.单别, b.单号
)
insert into a
select * from tb
[解决办法]

INSERT  TABLEA(单别,单号,变更版本号)
SELECT b.单别,b.单号,isnull(max(a.变更版本号),0)+1
FROM TABLEB b left  join TABLEA a
on   a.单别 = b.单别
and a.单号 = b.单号

[解决办法]
insert into tableA select B.单别,B.单号,max(A.变更号)+1 from tableA A join tableB B on A.单别=B.单别 and A.单号=B.单号 group by B.单别,B.单号

[解决办法]
引用:
Quote: 引用:

INSERT  TABLEA(单别,单号,变更版本号)
SELECT b.单别,b.单号,isnull(max(a.变更版本号),0)+1
FROM TABLEB b left  join TABLEA a
on   a.单别 = b.单别
and a.单号 = b.单号

少了聚合的函数,另外我的变更版本号是字符串0001,0002现在这样变成数字了,怎么办


呵呵,改了一下,试试:
INSERT  TABLEA(单别,单号,变更版本号)
SELECT b.单别,b.单号,
       right('000'+cast(isnull(max(a.变更版本号),0)+1 as varchar),3)
FROM TABLEB b left  join TABLEA a
on   a.单别 = b.单别
and a.单号 = b.单号
GROUP BY b.单别,b.单号

热点排行