/***************************************************************************
 功能:价格管理--调价
 作者:XX
 日期:2006-06-26
***************************************************************************/
CREATE PROCEDURE  WG_TJ
@YHDLM VARCHAR(50), --用户登陆名
@IP VARCHAR(20),  --IP地址
@TJYJ NVARCHAR(50),  --调价依据
@SFSQ VARCHAR(1),  --是否申请标记
@XJHJ DECIMAL(12,2),  --新计划价
@QCDM VARCHAR(18),  --器材代码
@PC VARCHAR(8),  --批次
@RE VARCHAR(10) OUTPUT --返回操作结果

AS

DECLARE @YHXM VARCHAR(10)
SELECT @YHXM=XM FROM WG_YHML WHERE YHDLM=@YHDLM AND ZTFW='N'

DECLARE @TJQJHJ DECIMAL(12,2)
SELECT @TJQJHJ=JHDJ FROM WG_BZDM WHERE QCDM=@QCDM

IF(@SFSQ='Y')  --以前是申请过的
BEGIN
 BEGIN TRAN --事务开始

DECLARE @KCSL  DECIMAL(12,3)
 DECLARE @DWDM VARCHAR(6)
 DECLARE @QCDM_TEMP VARCHAR(18)
 DECLARE @BJ VARCHAR(1)

DECLARE @ZXKCSL DECIMAL(12,3)
 SELECT @ZXKCSL=KCSL FROM CXX_KC WHERE QCDM=@QCDM

SELECT @QCDM_TEMP=QCDM FROM WG_KCJC WHERE QCDM=@QCDM AND PC=@PC
 IF(@@ROWCOUNT>0) BEGIN --检测库存价差表中是否已经存在此批次此物资
  SET @BJ='1'  --存在此物资,则从WG_TJJL 中查询出原计划价
  SELECT @TJQJHJ=YJHDJ FROM WG_TJJL WHERE SUBSTRING(SQPH,1,8)=@PC AND QCDM=@QCDM
  --库存价差中存在此物资并且此次价格与原计划价不相同则先删除再增加,以防止此段时间库存发生变化
  IF(@XJHJ<>@TJQJHJ AND @XJHJ<>0) BEGIN
   DELETE FROM WG_KCJC WHERE PC=@PC AND QCDM=@QCDM
  END
 END
 ELSE
  SET @BJ='0'  --不存在此物资

DECLARE OUTER_SURSOR_TJ CURSOR FOR --定义游标
 --从库存明细中查询
 SELECT KCSL,LSDWDM   
 FROM WG_KCMX
 WHERE QCDM=@QCDM

OPEN OUTER_SURSOR_TJ   --打开游标

FETCH NEXT FROM OUTER_SURSOR_TJ  --读取游标
 INTO @KCSL,@DWDM

WHILE @@FETCH_STATUS=0   --游标中数据处理
 BEGIN
  
  IF(@BJ='0')    --库存价差中不存在此批次此物资
  BEGIN --2-0  BEGIN
   IF(@XJHJ<>@TJQJHJ AND @XJHJ<>0)  --库存价差中不存在此批次此物资、执行计划价和原计划价不相同时则增加库存价差
   BEGIN -- 1 BEGIN
    --添加WG_KCJC
    INSERT INTO WG_KCJC
    (
     QCDM,
     KCSL,
     TJQJHJ,
     TJHJHJ,
     LSDWDM,
     KCJC,
     TJR,
     TJRQ,
     TJYJ,
     PC
    )
    VALUES
    (
     @QCDM,
     @KCSL,
     @TJQJHJ,
     @XJHJ,
     @DWDM,
     @KCSL*(@XJHJ-@TJQJHJ),
     @YHDLM,
     GETDATE(),
     @TJYJ,
     @PC
    )
    
    INSERT INTO WG_YHCZJL
     (
      YHDLM,
      CZBM,
      CZLX,
      JLGJZ,
      CZNR,
      CZSJ,
      IPDZ
     )
    VALUES
     (
      @YHDLM,
      'WG_KCJC',
      '新增记录',
      @QCDM,
      '新增库存价差记录:器材代码:'+@QCDM+ ',批次:' + @PC +';操作人:'+@YHXM,
      GETDATE(),
      @IP--@IP
     )
   END --  1  END
  END -- 2-0 BEGIN
  ELSE 
  BEGIN --3-0 BEGIN  --库存中已经存在此批次的此物资
   IF(@XJHJ<>@TJQJHJ AND @XJHJ<>0)  --库存价差中不存在此批次此物资、执行计划价和原计划价不相同时则增加库存价差
   BEGIN -- 4 BEGIN
    --添加WG_KCJC
    INSERT INTO WG_KCJC
    (
     QCDM,
     KCSL,
     TJQJHJ,
     TJHJHJ,
     LSDWDM,
     KCJC,
     TJR,
     TJRQ,
     TJYJ,
     PC
    )
    VALUES
    (
     @QCDM,
     @KCSL,
     @TJQJHJ,
     @XJHJ,
     @DWDM,
     @KCSL*(@XJHJ-@TJQJHJ),
     @YHDLM,
     GETDATE(),
     @TJYJ,
     @PC
    )

略……
   END --  4  END
  
  END-- 3-0 END
  --PRINT(@KCSL)
  --PRINT(@DWDM)
  --读取游标下一条记录
  FETCH NEXT FROM OUTER_SURSOR_TJ INTO @KCSL,@DWDM
 END
 --关闭游标
 CLOSE OUTER_SURSOR_TJ
 DEALLOCATE OUTER_SURSOR_TJ
 --修改WG_TJJL ,若新价格与原价格不相同则修改WG_TJJL的多个字段
 IF(@XJHJ<>@TJQJHJ AND @XJHJ<>0) BEGIN
  UPDATE WG_TJJL SET TJYJ=@TJYJ,ZXJHDJ=@XJHJ, ZXKCSL=@ZXKCSL,ZXRQ=GETDATE(),TJR=@YHDLM,ZXBZ='Y' ,SHBZ='Z'
  WHERE QCDM=@QCDM AND SUBSTRING(SQPH,1,8)=@PC
 END
 ELSE BEGIN  ---修改WG_TJJL ,若新价格与原价格相同则不修改WG_TJJL中的执行计划单价
  UPDATE WG_TJJL SET TJYJ=@TJYJ,ZXJHDJ=@TJQJHJ, ZXKCSL=@ZXKCSL,ZXRQ=GETDATE(),TJR=@YHDLM,ZXBZ='Y' ,SHBZ='Z'
  WHERE QCDM=@QCDM AND SUBSTRING(SQPH,1,8)=@PC
 END
 IF(@@ROWCOUNT>0 AND @@ERROR<=0)
 BEGIN
  --  以下定义更新申请表中用到的变量
  DECLARE @ZXKCSL_TJSQ DECIMAL(12,3)
  DECLARE @SQDWDM_TJSQ VARCHAR(5)
  DECLARE @QCDM_TJSQ VARCHAR(18)
  DECLARE @SHPC_TJSQ VARCHAR(18)
  DECLARE @DWMC_TJSQ VARCHAR(50)
  DECLARE @SQR_TJSQ VARCHAR(50)
  --若新计划价与原计划价不相同则更新WG_BZDM中的计划价
  IF(@TJQJHJ<>@XJHJ AND @XJHJ<>0)
  BEGIN
   --修改WG_BZDM中计划价
   UPDATE WG_BZDM SET JHDJ=@XJHJ,TJRQ=GETDATE(),GXSJ=GETDATE()  WHERE QCDM=@QCDM
   IF(@@ROWCOUNT>0)
   BEGIN
    略……
    IF(@@ROWCOUNT>0)
    BEGIN
     SET @RE='成功'
     --最后修改  WG_TJSQ  中的信息
     --(由于没有申请过的可能要用零星再次调价,并且想放在此批次中,顾找不到他的申请项,放在最后修改不会出错)
     
     --为修改调价申请打开一个游标,怕库存中不存在此单位的物资(此时库存应为0),不用游标不能实现
     --***********************************************  游标区  ****************************************-------
     DECLARE  OUTER_SURSOR_TJSQ CURSOR FOR 
     SELECT DWDM,QCDM,SHPC,SQR FROM CXX_TJSQ_Simple WHERE QCDM=@QCDM AND SHPC=@PC

OPEN OUTER_SURSOR_TJSQ
     
     FETCH NEXT FROM OUTER_SURSOR_TJSQ
     INTO @SQDWDM_TJSQ,@QCDM_TJSQ,@SHPC_TJSQ,@SQR_TJSQ
     
     WHILE @@FETCH_STATUS=0  BEGIN
      SET @SQR_TJSQ=LTRIM(RTRIM(@SQR_TJSQ))
      EXEC WG_KC_Select_BY_YHDLMandQCDM @YHDLM=@SQR_TJSQ,@QCDM=@QCDM,@KCSL=@ZXKCSL_TJSQ OUTPUT
      
      IF(@XJHJ<>0) BEGIN
       UPDATE WG_TJSQ SET ZXJHDJ=@XJHJ,ZXKCSL=@ZXKCSL_TJSQ,ZXR=@YHDLM,ZXRQ=GETDATE(),SHBZ='Z',ZJXGSJ=GETDATE()
       WHERE QCDM=@QCDM AND SHPC=@PC AND LTRIM(RTRIM(SQR))=@SQR_TJSQ
      END
      ELSE BEGIN
       UPDATE WG_TJSQ SET ZXJHDJ=@TJQJHJ,ZXKCSL=@ZXKCSL_TJSQ,ZXR=@YHDLM,ZXRQ=GETDATE(),SHBZ='Z',ZJXGSJ=GETDATE()
       WHERE QCDM=@QCDM AND SHPC=@PC AND LTRIM(RTRIM(SQR))=@SQR_TJSQ
      END
      FETCH NEXT FROM OUTER_SURSOR_TJSQ INTO @SQDWDM_TJSQ,@QCDM_TJSQ,@SHPC_TJSQ,@SQR_TJSQ
     END
     
     CLOSE OUTER_SURSOR_TJSQ
     DEALLOCATE OUTER_SURSOR_TJSQ
     --***********************************************  游标区  ****************************************-------
    END
    ELSE
     SET @RE='失败'
   END
  END
  ELSE BEGIN  --调价的价格不改变的话只修改调价申请中的信息
    SET @RE='成功'
   --为修改调价申请打开一个游标,怕库存中不存在此单位的物资(此时库存应为0),不用游标不能实现
   --***********************************************  游标区  ****************************************-------
   DECLARE  OUTER_SURSOR_TJSQ_ CURSOR FOR 
   SELECT DWDM,QCDM,SHPC,SQR FROM CXX_TJSQ_Simple WHERE QCDM=@QCDM AND SHPC=@PC

OPEN OUTER_SURSOR_TJSQ_
   
   FETCH NEXT FROM OUTER_SURSOR_TJSQ_
   INTO @SQDWDM_TJSQ,@QCDM_TJSQ,@SHPC_TJSQ,@SQR_TJSQ
   
   WHILE @@FETCH_STATUS=0  BEGIN
    SET @SQR_TJSQ=LTRIM(RTRIM(@SQR_TJSQ))
    --SELECT @ZXKCSL_TJSQ=KCSL FROM WG_KCMX WHERE QCDM=@QCDM AND LSDWDM=@SQDWDM_TJSQ
    EXEC WG_KC_Select_BY_YHDLMandQCDM @YHDLM=@SQR_TJSQ,@QCDM=@QCDM,@KCSL=@ZXKCSL_TJSQ OUTPUT
    IF(@XJHJ<>0) BEGIN
     UPDATE WG_TJSQ SET ZXJHDJ=@XJHJ,ZXKCSL=@ZXKCSL_TJSQ,ZXR=@YHDLM,ZXRQ=GETDATE(),SHBZ='Z',ZJXGSJ=GETDATE()
     WHERE QCDM=@QCDM AND SHPC=@PC AND LTRIM(RTRIM(SQR))=@SQR_TJSQ
    END
    ELSE BEGIN
     UPDATE WG_TJSQ SET ZXJHDJ=@TJQJHJ,ZXKCSL=@ZXKCSL_TJSQ,ZXR=@YHDLM,ZXRQ=GETDATE(),SHBZ='Z',ZJXGSJ=GETDATE()
     WHERE QCDM=@QCDM AND SHPC=@PC AND LTRIM(RTRIM(SQR))=@SQR_TJSQ
    END
    FETCH NEXT FROM OUTER_SURSOR_TJSQ_ INTO @SQDWDM_TJSQ,@QCDM_TJSQ,@SHPC_TJSQ,@SQR_TJSQ
   END
   
   CLOSE OUTER_SURSOR_TJSQ_
   DEALLOCATE OUTER_SURSOR_TJSQ_
   --***********************************************  游标区  ****************************************-------
  END
 END

COMMIT
PRINT(@RE)
RETURN
END

ELSE  --没有申请的
BEGIN
 BEGIN TRANSACTION

DECLARE @MC VARCHAR(40)
 DECLARE @GG NVARCHAR(60)
 DECLARE @JLDW NVARCHAR(4) 
 DECLARE @YJHDJ DECIMAL(12,2) --原计划单价(调价记录中存在此批次此物资,从调价记录中读取;否则从标准代码中读取)
 DECLARE @KCSL1 DECIMAL(12,3) --总库存数量
 DECLARE @YHDW VARCHAR(30) --用户单位
 DECLARE @YBJ VARCHAR(1)  --原来是否存在此记录的标记(存在:Y;不存在:N)

SELECT @KCSL1=KCSL FROM CXX_KC WHERE QCDM=@QCDM --读取总库存
 SELECT @MC=MC,@GG=GG,@JLDW=JLDW,@YJHDJ=JHDJ FROM WG_BZDM WHERE QCDM=@QCDM
 SELECT @YHDW=DWMC FROM WG_DWML,WG_YHML WHERE WG_DWML.DWDM=WG_YHML.DWDM AND ZTFW='N' AND YHDLM=@YHDLM

DECLARE @SQPH_Temp VARCHAR(15)
 SELECT @SQPH_Temp=SQPH FROM WG_TJJL WHERE SUBSTRING(SQPH,1,8)=@PC AND QCDM=@QCDM
 IF(@@ROWCOUNT>0) BEGIN --调价记录中存在此批次此物资
  SET @YBJ='Y'  --调价记录中存在此批次此记录,(存在:Y)
  UPDATE WG_TJJL SET ZXJHDJ=@XJHJ,ZXRQ=GETDATE(),TJR=@YHDLM,TJYJ=@TJYJ WHERE QCDM=@QCDM AND SUBSTRING(SQPH,1,8)=@PC
  IF @@ROWCOUNT>0  BEGIN --若原来就存在记录,则原计划价不从标准代码中读取而从调价记录中读取
   SELECT @YJHDJ=YJHDJ FROM WG_TJJL WHERE SUBSTRING(SQPH,1,8)=@PC AND QCDM=@QCDM
   --DELETE FROM WG_KCJC WHERE QCDM=@QCDM AND PC=@PC
   SET @RE='成功'
   --PRINT(@PC)
  END
  ELSE BEGIN
    SET @RE='失败'
  END
 END
 ELSE BEGIN  --若没有找到这条记录,则新增
 -- 1    BEGIN
  SET @YBJ='N'  --调价记录中不存在此批次此记录,(不存在:N)
  DECLARE @MAX_LSH INT
  DECLARE @LSH VARCHAR(4)
  SET @MAX_LSH=CAST((SELECT MAX(SUBSTRING(SQPH,10,4)) FROM WG_TJJL WHERE SUBSTRING(SQPH,1,9)=@PC+'-') AS INT)
  
  IF(@MAX_LSH=NULL)
   SET @MAX_LSH=0
  SET @MAX_LSH=@MAX_LSH+1
  IF(@MAX_LSH<10)
   SET @LSH='000' + CAST(@MAX_LSH AS VARCHAR(1))
  ELSE IF(@MAX_LSH<100)
   SET @LSH='00' + CAST(@MAX_LSH AS VARCHAR(2))
  ELSE IF(@MAX_LSH<1000)
   SET @LSH='0' + CAST(@MAX_LSH AS VARCHAR(3))
  ELSE IF(@MAX_LSH<10000)
   SET @LSH=CAST(@MAX_LSH AS VARCHAR(4))
  --增加WG_TJJL记录
  INSERT INTO WG_TJJL
   (
    SQPH,
    QCDM,
    MC,
    GG,
    JLDW,
    YJHDJ,
    BPJHDJ,
    BPKCSL,
    SHR,
    PZSJ, --批准时间
    ZXKCSL,--执行库存数量
    ZXRQ, --执行日期
    ZXJHDJ,--执行计划价
    GLJPFJHJ, --管理局批复计划价
    GLJPFR,--管理局批复人
    GLJPFSJ, --管理局批复时间
    TJR, --调价人
    TJYJ, --调价依据
    ZXBZ, --执行标志
    SQBZ, --申请标志
    SHBZ
   )
   VALUES
   (
    @PC+'-'+@LSH,
    @QCDM,
    @MC,
    @GG,
    @JLDW,
    @YJHDJ,
    @XJHJ,
    @KCSL1,
    @YHDLM,
    GETDATE(), --批准时间
    @KCSL1, --执行库存数量 --总库存
    GETDATE(), --执行日期
    @XJHJ,  --执行计划单价
    @XJHJ,  --管理局批复计划价
    @YHDLM, --管理局批复人(用户登陆名)
    GETDATE(), --管理局批复时间
    @YHDLM, --执行人(用户登陆名)
    @TJYJ,
    'Y',
    'N',
    'Z'
   )
  --增加操作记录
  略……
 -- 1   END
 END --增加调价记录

DECLARE @XKCSL DECIMAL(12,3)
 DECLARE @LSDWDM VARCHAR(6)

DECLARE @QCDM_TEMP1 VARCHAR(18)
 --SELECT @QCDM_TEMP1=QCDM FROM WG_KCJC WHERE QCDM=@QCDM AND PC=@PC
 IF(@YBJ='Y') BEGIN  --若调价记录中存在此批次此物资,则先删除库存价差中的记录,因为此批次此物资再次调价的话,库存会发生变化
  DELETE FROM WG_KCJC WHERE PC=@PC AND QCDM=@QCDM
 END
 
 DECLARE OUTER_CURSOR2 CURSOR FOR --定义游标

SELECT KCSL,LSDWDM  --查询
 FROM WG_KCMX
 WHERE QCDM=@QCDM

OPEN OUTER_CURSOR2   --打开游标

FETCH NEXT FROM OUTER_CURSOR2  --读取游标
 INTO @XKCSL,@LSDWDM

WHILE @@FETCH_STATUS=0   --游标中数据处理
 BEGIN
  --添加WG_KCJC
  INSERT INTO WG_KCJC
  (
   QCDM,
   KCSL,
   TJQJHJ,
   TJHJHJ,
   LSDWDM,
   KCJC,
   TJR,
   TJRQ,
   TJYJ,
   PC
  )
  VALUES
  (
   @QCDM,
   @XKCSL,
   @YJHDJ,
   @XJHJ,
   @LSDWDM,
   @XKCSL*(@XJHJ-@YJHDJ),
   @YHDLM,
   GETDATE(),
   @TJYJ,
   @PC
  )
  --增加操作记录
  略……
  --读取游标下一条记录
  FETCH NEXT FROM OUTER_CURSOR2 INTO @XKCSL,@LSDWDM
  
 END
 --关闭游标
 CLOSE OUTER_CURSOR2
 DEALLOCATE OUTER_CURSOR2

--修改WG_BZDM中计划价
 UPDATE WG_BZDM SET JHDJ=@XJHJ,TJRQ=GETDATE(),GXSJ=GETDATE()  WHERE QCDM=@QCDM
 --增加操作记录
 IF(@@ROWCOUNT>0)
 BEGIN
  INSERT INTO WG_YHCZJL
   (
    YHDLM,
    CZBM,
    CZLX,
    JLGJZ,
    CZNR,
    CZSJ,
    IPDZ
   )
  VALUES
   (
    @YHDLM,
    'WG_BZDM',
    '修改记录',
    @QCDM,
    '修改标准代码中的计划价:将器材代码为:'+@QCDM+'物资的计划价由:'+CAST(@TJQJHJ AS VARCHAR(12))+',修改为:'+CAST(@XJHJ AS VARCHAR(12))+'操作人:'+@YHXM,
    GETDATE(),
    @IP--@IP
   )
  IF(@@ROWCOUNT>0)
   SET @RE='成功'
  ELSE
   SET @RE='失败'
   
 END
 COMMIT
 
PRINT(@RE)
RETURN
END
GO

转载于:https://www.cnblogs.com/asdcer/archive/2006/09/01/492089.html

一个存储过程,折腾了我半天相关推荐

  1. 1 创建一个存储过程,以及对存储过程的调用 MySQL

    1  首先创建一张tb1表  sql语句如下 CREATE TABLE `tb1` (   `Id` int(11) NOT NULL AUTO_INCREMENT,   `age` int(11) ...

  2. 创建一个存储过程,返回指定员工的姓名和薪水

    /* 创建一个存储过程,返回指定员工的姓名和薪水 */ create or replace PROCEDURE queryEmp1(eno in number,empname out VARCHAR2 ...

  3. 使用oracle 的 PL/Sql 定时执行一个存储过程

    /* 使用oracle 的 PL/Sql 定时执行一个存储过程 测试目的:在表 tab 中间隔一分钟插入一条数据 实现方案: 1.通过 oracle 中 dbms_job 完成存储过程的定时调用 2. ...

  4. 对一个存储过程语法的解读

    create or replace package body SY_USER_PKG1 is//创建一个存储过程的声明,在package body就是存储过程的实现体所放的包,SY_USER_PKG1 ...

  5. 定义一个存储过程,以员工工号为参数,修改该员工的工资,若该员工属于10部门,则工资增加150 若属于20号部门,工资加200,若属于30部门,工资加250 若其它部门,则加300

    注:使用的是Oracle的实例数据库中的scott用户 定义一个存储过程,以员工工号为参数,修改该员工的工资,若该员工属于10部门,则工资增加150 若属于20号部门,工资加200,若属于30部门,工 ...

  6. mysql定时任务如何每天0点跑_mysql定时任务,每天的零点执行一个存储过程

    1 前言 利用navicat工具来写存储过程及定时执行,此文章是按照自身经验总结的,仅作为记录使用. 2 步骤 2.1 新建过程 2.2 在函数体写你需要执行的代码 CREATE DEFINER=`r ...

  7. mysql怎么让一个存储过程定时执行

    查看event是否开启: show variables like '%sche%';  将事件计划开启: set global event_scheduler=1;  关闭事件任务: alter ev ...

  8. 在存储过程中如何使用另一个存储过程返回的结果集

    1.创建一个临时表#tmp,表结构与目标存储过程procedure_name的返回结果集兼容(兼容即可,不必相同). CREATE TABLE #tmp( [columns_list] ) 2.执行存 ...

  9. mysql 让一个存储过程定时作业的代码(转)

    1.在mysql 中建立一个数据库 test1 语句:create database test1 2.创建表examinfo create table examinfo( id int auto_in ...

  10. mysql怎么创建自动作业_mysql 让一个存储过程定时作业的代码

    1.在mysql 中建立一个数据库 test1 语句:create database test1 2.创建表examinfo create table examinfo( id int auto_in ...

最新文章

  1. 如何关注掘金的所有小伙伴
  2. 2017年11月01日普及组 I Will Like Matrix!
  3. windows phone 中反序列化json时出现的问题
  4. linux dhcp服务软包,dpkg包管理器详解
  5. 深入Python字典的内部实现
  6. 软件工程:方法与实践 第四次读书笔记
  7. 正确认识计算机专业,如何正确认识计算机科学与技术专业
  8. 【应用赏析】ArcGIS API for iOS在俄勒冈大学校园中的创新应用
  9. docker: Error response from daemon: driver failed programming external connectivity on endpoint mys
  10. 双十一淘宝美妆消费数据分析
  11. 高分系列(GF1-GF7)卫星介绍
  12. java linux virt_解决Unable to load library 'virt'
  13. 一个有用的webstrom激活方法
  14. 他妈的 Python(1):怎么发起一个同步的 HTTP 请求
  15. 重磅!75岁柳传志正式退休!卸任联想控股董事长,接班人是谁?一文回顾:柳传志的创业史...
  16. mysql插入中文报错处理办法
  17. Microsoft Excel 中 ROMAN 函数介绍
  18. 九、软件开发进度月报-模板
  19. raid的种类和区别
  20. CSP考试笔记:C++篇(第四章、面向对象)(牛客网学习)

热门文章

  1. CMake 使用总结(转载)
  2. 排序算法之九 基数排序(C++版本)
  3. git add多个文件_10个节省时间和改善工作流的Git技巧
  4. 平分七框梨java_php编程- php算法 - 平分七框鱼
  5. mysql 安装no key_No package mysql-server available错误解决(centos mysql安装教程)
  6. 数据结构二叉树的建立代码_二叉树就是这么简单
  7. 中科院计算机考研对外调剂吗,考研调剂信息:2020年中科院接收调剂研究生!...
  8. c语言实验报告1华科,华科操作系统实验报告
  9. java 反射集合_Java反射的理解(六)-- 通过反射了解集合泛型的本质
  10. SQL:MySQL创建、删除事件