我的表格如下:
select Jgrelhas from Jgrelhas
where id IN
(select id from Jgrelhas
where jtabuleiros.id=? and id<? order by id desc )
order by id asc
每个 TableA
ID |SEQ |CODE
======|====|=========
Item1 |1 |A
Item1 |2 |B
Item2 |1 |A
Item2 |2 |B
Item2 |3 |C
Item3 |1 |B
Item4 |1 |C
在ID
中为其应用的每个SEQ
增加1,具体取决于应用的顺序。我正在尝试为此表添加更多数据以获取新代码,并希望将其添加到第二个表中的某组项目中,作为该项目的最新序列号。到目前为止我有什么
CODE
这段代码显然不起作用,我无法用一个词或短语来描述我试图搜索它的内容,所以我想我会问。
答案 0 :(得分:0)
我不确定理解你的问题,但你可以说这次尝试有什么不对。
Insert into TableA
(ID, Seq, Code)
Select TableB.ID,
Seq2 = isnull((select max(TableA.Seq)+1 from TableA where TableA.ID=TableB.ID),1),
TableB.Code
From TableB
答案 1 :(得分:0)
基于我对您的要求的理解(几乎没有假设),希望以下帮助
CREATE TABLE #SO_32400879 (ID NVARCHAR(10),SEQ NVARCHAR(10), CODE NVARCHAR(10))
INSERT INTO #SO_32400879 VALUES ('Item1','1','A')
INSERT INTO #SO_32400879 VALUES ('Item1','2','B')
INSERT INTO #SO_32400879 VALUES ('Item2','1','A')
INSERT INTO #SO_32400879 VALUES ('Item2','2','B')
INSERT INTO #SO_32400879 VALUES ('Item2','3','C')
INSERT INTO #SO_32400879 VALUES ('Item3','1','A')
INSERT INTO #SO_32400879 VALUES ('Item4','1','A')
CREATE TABLE #Temp (ID NVARCHAR(10), CODE NVARCHAR(10))
INSERT INTO #Temp VALUES ('Item1','C')
INSERT INTO #Temp VALUES ('Item1','D')
INSERT INTO #Temp VALUES ('Item1','E')
INSERT INTO #Temp VALUES ('Item2','D')
INSERT INTO #Temp VALUES ('Item3','B')
INSERT INTO #Temp VALUES ('Item4','B')
INSERT INTO #Temp VALUES ('Item4','C')
INSERT INTO #SO_32400879 (id,SEQ,CODE)
SELECT t.ID,(SELECT MAX(s.SEQ) FROM #SO_32400879 s WHERE s.ID= t.ID ) + ROW_NUMBER()OVER (PARTITION BY ID ORDER BY ID) AS SEQ, t.CODE
FROM #Temp t
SELECT * FROM #SO_32400879 ORDER BY 1,2
DROP TABLE #SO_32400879
DROP TABLE #Temp
输出如下:
ID |SEQ|CODE
=====|===|==
Item1|1 |A
Item1|2 |B
Item1|3 |C
Item1|4 |D
Item1|5 |E
Item2|1 |A
Item2|2 |B
Item2|3 |C
Item2|4 |D
Item3|1 |A
Item3|2 |B
Item4|1 |A
Item4|2 |B
Item4|3 |C