为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

程序员考试试题

2018-03-01 17页 doc 38KB 40阅读

用户头像

is_005190

暂无简介

举报
程序员考试试题程序员考试试题 一、 编写一个简化的进货单审核的存储过程(注:答题前请认真阅读附件中的相关预备 知识,并可查阅SYBASE数据库相关的技术资料)。 要求如下: 1、必须使用游标(注:可查看存储过程的相关知识)。 2、产生一个新的库存批次号,并插入表KCPCXX(注:库存批次号是从1开始的流水号)。 3、插入或更新表SPFPCJC和KCSP (注:有的商品可能不是第一次进货)。 4、据产生的库存批次号和当前日期更新表JHD的KCPCH和SHRQ字段。 (提示:此存储过程的输入参数只有一个就是@JLBH,简化起见不需...
程序员考试试题
程序员考试试题 一、 编写一个简化的进货单审核的存储过程(注:答题前请认真阅读附件中的相关预备 知识,并可查阅SYBASE数据库相关的技术资料)。 要求如下: 1、必须使用游标(注:可查看存储过程的相关知识)。 2、产生一个新的库存批次号,并插入表KCPCXX(注:库存批次号是从1开始的流水号)。 3、插入或更新表SPFPCJC和KCSP (注:有的商品可能不是第一次进货)。 4、据产生的库存批次号和当前日期更新表JHD的KCPCH和SHRQ字段。 (提示:此存储过程的输入参数只有一个就是@JLBH,简化起见不需要输出参数) ------注:如果熟悉SQLSERVER,也可用SQLSQRVER写。 ------ 最好用Begin tran exec 过程名 参数 Bollback 能通过。如果通不过,语法别错误太大也行。 二、自己建一个表,以这个表为基础,建一个视图文件。以及一个简单触发器 三、从某种角度来说,要想成为一名优秀的程序员必须具备以下三点:1、扎实的专业知识 和丰富的行业经验2、强烈的责任心和一丝不苟的工作态度3、可预见性,即对将要开 发或正在开发的程序可能存在问题的预见性和程序的可扩展性。你是否想成为一名优秀 的程序员,如是请客观评估自己目前的差距有多大,并怎样在日常的工作中尽快缩短 差距, 四、翻译Delphi开发环境中关于控件TTable的联机帮助(注:可查阅英文字典)。 Use TTable to access data in a single database table using the Borland Database Engine (BDE). TTable provides direct access to every record and field in an underlying database table, whether it is from Paradox, dBASE, Access, FoxPro, an ODBC-compliant database, or an SQL database on a remote server, such as InterBase, Oracle, Sybase, MS-SQL Server, Informix, or DB2. A table component can also work with a subset of records within a database table using ranges and filters. At design time, create, delete, update, or rename the database table connected to a TTable by right-clicking on the TTable and using the pop-up menu. 附件 分为四个部分:1、关于单据的说明2、相关术语或字段的说明3、相关表结构说明4、 存储过程实例(注:不必深入研究,目的只是了解实际的存储过程的写法,并可灵活运用其 中的局部内容) 1、关于单据的说明: 商场发生的各种业务例如:进货、返厂、配货、返仓、调拨、变进价等在信息系统中一 般都会以单据的形式下来,记录单据的过程在信息系统中称为单据处理。单据处理一般 分为录入和审核两步。每种单据在系统中保存时一般是采用主从表的形式。即共用信息一般 放在主表中,明细信息一般放在从表中。以进货单为例:主表JHD(进货单)记录的是本次进 货的所有商品的共同的部门(DEPTID)和供货单位(GHDW)及总的进货金额(JHJE)等信息。从 表JHDITEM(进货单明细表)记录的是各个商品(SP_ID)的进货单价(JHDJ)、进货数量(JHSL)、 进货金额(JHJE)等信息。录入完成后,主表中只有一条记录,而从表根据本次进货的商品的 多少可能有多条记录。在审核之前,此单据是可以再次调出进行修改的,并可以删除。审核 后此单据就真正生效了,商品的库存会增加,同时会写其它的相关内容,此时的单据就不允 许修改和删除了。 2、相关术语或字段的说明: 关于部门(DEPTID)的说明:在商场中,部门一般分为进货部门、销售部门和其它行政部门。 进货部门负责商品的进货,销售部门负责商品的销售,其它行政部门不参与系统流程的处理。 以进货部门为例:进货部门一般根据商品的类别分为百货、家电、服装、针绵、食品等。 关于商品(SP_ID)的说明:商品是信息系统处理的基本对象,商场的进、销、调、存都与商 品有关。为了便于管理和数据分析,商品都属于某个部门。 关于批次(KCPCH)的说明:进货是按部门和供货商进行的。同一个供货商同一个部门的不同 商品在进货时可共用一张进货单。每张进货单在审核时都会产生一个新的批次(同一个商品 即使在同一个供货商同一个部门下,当发生多次进货时,每次都会产生一个新的批次)。这 样同一个商品在不同的批次上进价可能不一样,当发生销售后,在记成本时,可以按照先进 先出的原则依次取各个批次的进价,以达到准确的成本核算。 3、相关的表结构说明: create table JHD ( JLBH int not null, DEPTID varchar(10) not null, GHDW varchar(6) not null, JHJE money default 0 not null, DJSJ datetime not null, SHRQ datetime null, KCPCH int null, constraint PK_JHD primary key (JLBH) ) 表名: JHD 进货单 字段名: JLBH 记录编号,在录入时由系统自动产生 DEPTID 部门代码,指商场的进货部门的编码 GHDW 供货单位,给商场供货的供应商代码 JHJE 进货金额,本次进货的总进货金额 DJSJ 登记时间,录入进货单时系统自动给出 SHRQ 审核日期,在审核时反写此字段值 KCPCH 库存批次号,在审核时反写此字段值 create table JHDITEM ( JLBH int not null, INX int not null, SP_ID int not null, JHDJ money null, JHSL numeric(16,4) default 0 not null, JHJE money default 0 not null, constraint PK_JHDITEM primary key (JLBH, INX) ) 表名: JHDITEM 进货单明细 字段名: JLBH 记录编号,可与主表的JLBH作表连接 INX 子表单的顺序号 SP_ID 商品的系统内部编号,一个商品唯一对应一个ID号 JHDJ 进货单价 JHSL 进货数量 JHJE 进货金额 create table KCPCXX ( KCPCH int not null, GHDW varchar(6) not null, JHDBH int null, constraint PK_KCPCXX primary key (KCPCH) ) 表名: KCPCXX 库存批次信息,它是表SPFPCJC(商品分批次结存)的主表,通过字段KCPCH连 接 字段名: KCPCH 库存批次号 GHDW 供货单位 JHDBH 进货单编号,也就是表JHD的JLBH create table SPFPCJC ( DEPTID varchar(10) not null, SP_ID int not null, KCPCH int not null, JHDJ float default 0 null, JHSL numeric(16,4) default 0 not null, JCSL numeric(16,4) default 0 not null, JCJE money default 0 not null, constraint PK_SPFPCJC primary key (DEPTID, SP_ID, KCPCH) ) 表名: SPFPCJC 商品分批次结存,它是表KCPCXX(库存批次信息)的子表,通过字段KCPCH连 接 字段名: DEPTID 部门代码,指商场的进货部门的编码 SP_ID 商品的系统内部编号,一个商品唯一对应一个ID号 KCPCH 库存批次号 JHDJ 进货单价 JHSL 进货数量 JCSL 结存数量 JCJE 结存金额 create table KCSP ( DEPTID varchar(10) not null, SP_ID int not null, KCSL numeric(16,4) default 0 not null, constraint PK_GTSP primary key (DEPTID, SP_ID) ) 表名: KCSP 库存商品,它与表SPFPCJC的区别是:表SPFPCJC记录的是每个部门(DEPTID) 的每个商品(SP_ID)的每个批次(KCPCH)的库存情况,而表KCSP记录的是每个部门(DEPTID) 的每个商品(SP_ID)的库存情况。 字段名: DEPTID 部门代码,指商场的进货部门的编码 SP_ID 商品的系统内部编号,一个商品唯一对应一个ID号 KCSL 库存数量 4、存储过程实例:(长益公司BFV52 返厂单审核存储过程) Create Procedure THD_SH @JLBH int, @SHR int, @RetFlag int OutPut, @RetStr char(50) OutPut as begin declare @Dept char(10), @KCDD char(8), @SP_ID int, @SPCODE char(10), @SPTYPE tinyint, @KCPCH int, @THSL numeric(16,4), @BZHL float, @THJS int, @THJE_JJ money, @ZZSJE money, @ZZSJE_17 money, @ZZSJE_13 money select @RetFlag = 0,@RetStr = '' if exists (select * from JXCRCLBJ where datediff(day,RQ,getdate()) = 0) begin raiserror 30001 '本日已经结帐,不能进行操作' return end if exists (select * from THCL where ZXR is not null and JLBH = @JLBH) begin raiserror 30001 '本单已经审核!' return end if not exists(select 1 from THCLITEMKCDD where JLBH = @JLBH) begin execute GetKCDD_THCL @JLBH,@RetFlag=@RetFlag output ,@RetStr=@RetStr output if @RetFlag <> 0 return end declare THCLITEMCur cursor for select DEPTID,SP_ID,sum(THSL) from THCLITEM where JLBH = @JLBH group by DEPTID,SP_ID for read only open THCLITEMCur fetch THCLITEMCur into @Dept,@SP_ID,@THSL while (@@sqlstatus = 0) begin if isnull((select sum(THXS) from THCLITEMKCDD where JLBH = @JLBH and DEPTID = @Dept and SP_ID = @SP_ID),0) <> @THSL begin select @SPCODE = SPCODE from SPXX where SP_ID = @SP_ID select @RetFlag = 1 select @RetStr = '商品('+ rtrim(@SPCODE)+')各批次的退货数量与各库存地点的不相等' return end fetch THCLITEMCur into @Dept,@SP_ID,@THSL end close THCLITEMCur deallocate cursor THCLITEMCur declare CurFPC_A cursor for select DEPTID,SP_ID,sum(THXS) from THCLITEMKCDD where JLBH = @JLBH group by DEPTID,SP_ID for read only open CurFPC_A fetch CurFPC_A into @Dept,@SP_ID,@THSL while (@@sqlstatus = 0) begin if isnull((select sum(THSL) from THCLITEM where JLBH = @JLBH and DEPTID = @Dept and SP_ID = @SP_ID),0) <> @THSL begin select @SPCODE = SPCODE from SPXX where SP_ID = @SP_ID select @RetFlag = 1 select @RetStr = '商品('+ rtrim(@SPCODE)+')各批次的退货数量与各库存地点的不相等' return end fetch CurFPC_A into @Dept,@SP_ID,@THSL end close CurFPC_A deallocate cursor CurFPC_A declare THCLITEMCur cursor for select DEPTID,SP_ID,KCPCH,THSL,THJE_JJ,ZZSJE from THCLITEM where JLBH = @JLBH for read only open THCLITEMCur fetch THCLITEMCur into @Dept,@SP_ID,@KCPCH,@THSL,@THJE_JJ,@ZZSJE while (@@sqlstatus = 0) begin if exists (select 1 from SPFPCJC where DEPTID = @Dept and SP_ID = @SP_ID and KCPCH = @KCPCH and JCSL < @THSL) begin select @SPCODE = SPCODE from SPXX where SP_ID = @SP_ID select @RetFlag = 1 select @RetStr = '商品('+ rtrim(@SPCODE)+')本批结存不够退货(批次号:'+convert(char(6),@KCPCH)+')' return end else begin update SPFPCJC set THSL = THSL + @THSL, JCSL = JCSL - @THSL, JCJE = JCJE - @THJE_JJ where DEPTID = @Dept and SP_ID = @SP_ID and KCPCH = @KCPCH end fetch THCLITEMCur into @Dept,@SP_ID,@KCPCH,@THSL,@THJE_JJ,@ZZSJE end close THCLITEMCur deallocate cursor THCLITEMCur declare THCLITEMKCDDCur cursor for select I.DEPTID,I.SP_ID,I.KCDD,I.BZHL,I.THJS,I.THXS,X.SPTYPE,X.SPCODE from THCLITEMKCDD I,SPXX X where I.SP_ID=X.SP_ID and I.JLBH = @JLBH for read only open THCLITEMKCDDCur fetch THCLITEMKCDDCur into @Dept,@SP_ID,@KCDD,@BZHL,@THJS,@THSL,@SPTYPE,@SPCODE while (@@sqlstatus = 0) begin if exists (select 1 from SPKCSLZ where DEPTID = @Dept and SP_ID = @SP_ID and KCDD = @KCDD and BZHL = @BZHL and YXKCXS < @THSL) begin select @RetFlag = 1,@RetStr = '商品('+ rtrim(@SPCODE)+')库存数量不够退货(库存地点代码:'+@KCDD+')' return end else begin if @KCDD = "01" begin if @SPTYPE<>4 --非黄金商品 select @THJS=round(@THSL/@BZHL,0) update GTSP set GZKCSL = GZKCSL - @THSL where DEPTID = @Dept and SP_ID = @SP_ID end update SPKCSLZ set YXKCXS = YXKCXS - @THSL, YXKCJS = YXKCJS - @THJS where DEPTID = @Dept and SP_ID = @SP_ID and KCDD = @KCDD and BZHL = @BZHL end fetch THCLITEMKCDDCur into @Dept,@SP_ID,@KCDD,@BZHL,@THJS,@THSL,@SPTYPE,@SPCODE end close THCLITEMKCDDCur deallocate cursor THCLITEMKCDDCur select @ZZSJE_17 = isnull(sum(A.ZZSJE),0) from THCLITEM A,SPFPCJC B where A.JLBH = @JLBH and A.SP_ID = B.SP_ID and A.DEPTID=B.DEPTID and A.KCPCH=B.KCPCH and B.JXSL = 0.17 select @ZZSJE_13 = isnull(sum(A.ZZSJE),0) from THCLITEM A,SPFPCJC B where A.JLBH = @JLBH and A.SP_ID = B.SP_ID and A.DEPTID=B.DEPTID and A.KCPCH=B.KCPCH and B.JXSL = 0.13 select @ZZSJE = sum(ZZSJE), @THJE_JJ = sum(THJE_JJ) from THCLITEM where JLBH = @JLBH update THCL set ZXRQ = convert(datetime,convert(char(20),getdate(),102)), ZXR = @SHR, ZXRMC =(select PERSON_NAME from RYXX where PERSON_ID=@SHR), THJE_JJ = @THJE_JJ, ZZSJE_17 = @ZZSJE_17, ZZSJE_13 = @ZZSJE_13, ZZSJE_QT = @ZZSJE - @ZZSJE_17 - @ZZSJE_13 where JLBH = @JLBH if (select HSFS from THCL where JLBH=@JLBH)=0 begin declare @HTH int, @GHDW char(6), @DEPTID char(10), @JSFF smallint select @HTH=HTH,@GHDW=GHDW from THCL where JLBH=@JLBH select @DEPTID=DEPTID from HT where HTH=@HTH select @JSFF=JSFF from HT_ZY where HTH=@HTH select @THJE_JJ=(-1)*@THJE_JJ -@ZZSJE execute Write_WLDWWLZ @GHDW,@DEPTID,@HTH,3,@JLBH,@JSFF,0,@THJE_JJ end end
/
本文档为【程序员考试试题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索