出勤日数 22天
出勤时间 222小时
出勤地点 国領 東京情報センター
作业内容 介護保険
2007/02/27
2007/02/25
2007/02/22
Memo
关于SQL的
表项目如下Key1 Key2 Seq Item1 Item2(※Seq也是key)
现在要求插入数据,如果有重复Key,则Seq取同Key数据最大值加一
即
假如要求不是insert,而是select,那么用子查询来完成没有问题
也就是说
select Key1, Key2, Seq
from Tbl
where Tbl.Key1 = 'aaa'
and Tbl.Key2 = 'ccc'
and Tbl.Seq = (select max(Tbl.Seq) from Tbl where Tbl.Key1 = 'aaa' and Tbl.Key2 = 'ccc')
结果就是
很自然的想到用上边的Sql发展成insert文,如下
insert into Tbl(Key1, Key2, Seq) values ('aaa', 'ccc', select max(Tbl.Seq)+ 1 from Tbl where Tbl.Key1 = 'aaa' and Tbl.Key2 = 'ccc')
这时候就会出现提示,在此子查询不可用,我还没看帮助,估计是因为插入和子查询是同表同Key.
解决的办法如下
insert into Tbl
select 'aaa', 'ccc', select max(Tbl.Seq)+ 1 from Tbl where Tbl.Key1 = 'aaa' and Tbl.Key2 = 'ccc')
select真是万能阿.........
表项目如下Key1 Key2 Seq Item1 Item2(※Seq也是key)
现在要求插入数据,如果有重复Key,则Seq取同Key数据最大值加一
即
Key1 | Key2 | Seq | Item1 | Item2 |
aaa | bbb | 0 | xxx | yyy |
aaa | bbb | 1 | zz | kk |
aaa | bbb | 2 | we | fs |
aaa | bbb | 3 | s | e |
aaa | bbb | 4 | sadvf | ff |
aaa | ccc | 0 | jhe | fa |
aaa | ccc | 1 | adfs | hf |
aaa | ccc | 2 | dsf | htt |
假如要求不是insert,而是select,那么用子查询来完成没有问题
也就是说
select Key1, Key2, Seq
from Tbl
where Tbl.Key1 = 'aaa'
and Tbl.Key2 = 'ccc'
and Tbl.Seq = (select max(Tbl.Seq) from Tbl where Tbl.Key1 = 'aaa' and Tbl.Key2 = 'ccc')
结果就是
Key1 | Key2 | Seq |
aaa | bbb | 4 |
很自然的想到用上边的Sql发展成insert文,如下
insert into Tbl(Key1, Key2, Seq) values ('aaa', 'ccc', select max(Tbl.Seq)+ 1 from Tbl where Tbl.Key1 = 'aaa' and Tbl.Key2 = 'ccc')
这时候就会出现提示,在此子查询不可用,我还没看帮助,估计是因为插入和子查询是同表同Key.
解决的办法如下
insert into Tbl
select 'aaa', 'ccc', select max(Tbl.Seq)+ 1 from Tbl where Tbl.Key1 = 'aaa' and Tbl.Key2 = 'ccc')
select真是万能阿.........
2007/02/18
逛了一下午,买了两样东西
2007/02/17
2007/02/14
2007/02/12
2007/02/04
Subscribe to:
Posts (Atom)