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

求表设计及查询有关问题

2012-01-22 
求表设计及查询问题一种配件的收支存台账每一件配件都有唯一的编号。配件的入库一般是成批的,比如:从087584

求表设计及查询问题
一种配件的收支存台账

每一件配件都有唯一的编号。

配件的入库一般是成批的,比如:从08758458222001——08758458222199 录入时也是这样从多少编号到多少编号。
配件的出库是10个为一批,比如:从08450——08460 录入到库中的数据也是如此。
编号怎么进行加法运算呀?如果能自动加,那后面的编号就不用输了,可以自动生成。

查找功能:输入编号,可以查到入库和出库的情况(日期,值班人等)。

可能很简单。大家给个思路啊!我是菜鸟!

[解决办法]
自增加一的实现

if object_id( 'pubs..tb ') is not null
drop table tb
go

create table tb
(
id int,
name char(1)
)
insert into tb(id,name) values(1, 'A ')
insert into tb(id,name) values(2, 'B ')
insert into tb(id,name) values(3, 'C ')
go

select id1 = identity(int,1,1) , * into test from tb
select * from test
drop table tb
drop table test

id1 id name
----------- ----------- ----
1 1 A
2 2 B
3 3 C

(所影响的行数为 3 行)

如果ID不重复。还可以用下面的语句。
select id1 = (select count(1) from tb where id <= a.id) , * from tb a
[解决办法]
自增加序号

Id, FormatId, F1 ,F2
Id序号我设了自动加一,FormatId我想他也象这样 "SL000001 ",
当Insert时就加1,FormatId我想他也能自动加一 "SL000001 ", "SL000002 "...
能用一条sql什么办法实现.最好不要用中间表。有什么好方法?
谢谢!


create table #test
(id int identity,
FormatId as 'SL '+right(10000000+id,6),
F1 varchar(50))
go
insert #test(F1) select '1 '
union all select '2 '


select * from #test

drop table #test


/*
id FormatId F1
----------- -------------- -----
1 SL000001 1
2 SL000002 2

(所影响的行数为 2 行)
*/
[解决办法]
没明白是什么意思,想要干什么,表结构是什么样的?


编号怎么进行加法运算呀!可以转换成整形计算,然后再计算的结果中,在右侧不足,少的“0”


[解决办法]
增加一个自动增长列,然后利用它去处理!
[解决办法]
从08758458222001——08758458222199 
看得出前面的数据是变动的,自增加不好搞.

一般可在前台用代码编写完成.

热点排行