CREATE PROCEDURE [dbo].[proc_CreateSoldOutStock]@FBillNo varchar(50),               -- 已售出库单编码@FInterID int  output,               -- 已售id@Errors varchar(50)     output              -- 错误
AS
BEGINdeclare @FMultiCheckStatus varchar(20)   --//审核流程状态declare @FComboBox varchar(20)   --//是否回购declare @RKJS_YWType  varchar(20)   --//业务类型declare @JSMX_HTH varchar(50)      --合同号declare @FDept  int           --部门IDdeclare @FDept_number  varchar(50)  --部门declare @RKJS_GYSBH varchar(50)     --客户代码declare @RKJS_GYSBH_id  int          --客户IDdeclare @RKJS_XSRQ datetime          --销售日期declare @FBase8 int  --币种IDdeclare @RKJS_BZ varchar(20) --RKJS_BZ  币种declare @FText6 varchar(10)   --期间declare @FEntry int   --行号declare @RKJS_Empt_ID int  --业务员IDdeclare @RKJS_Empt varchar(20)   --业务员名称
begin trybegin tran set  @Errors=''if exists(select * from t_BOS200000002 where FBillNo =@FBillNo)beginset @Errors='单据编号为:'+@FBillNo+'---k3已经存在'returnend
if exists(select * from  t_esb_SoldOutStock where  RKJS_DJBH=@FBillNo and IsRead=0)begin--获取已售出库的IDdeclare @p2 intexec GetICMaxNum 't_BOS200000002',@p2 outputset @FInterID=@p2select @RKJS_YWType=RKJS_YWType,@JSMX_HTH=JSMX_HTH,@RKJS_GYSBH=RKJS_GYSBH,@RKJS_XSRQ=RKJS_XSRQ,@RKJS_BZ=RKJS_BZ,@RKJS_Empt=RKJS_Empt from  t_esb_SoldOutStock where  RKJS_DJBH=@FBillNo and IsRead=0set @FMultiCheckStatus='2'   --//审核流程状态set @FComboBox='否'         --//是否回购--公司    默认进出口 page1JsonObj.put("FText", 0);   --部门 根据合同号,截取部门select @FDept_number=substring(@JSMX_HTH,6,2)+'.'+substring(@JSMX_HTH,8,2)+'.'+substring(@JSMX_HTH,10,3)if exists(select top 1 FItemID from t_Department   where  FNumber =@FDept_number)beginset @FDept=(select top 1 FItemID from t_Department   where  FNumber =@FDept_number)end--else-- begin--     set @FDept=0--    end--客户if exists(select top 1 FItemID from t_Item   where FItemClassID=1 and  FNumber =@RKJS_GYSBH)beginset @RKJS_GYSBH_id=(select top 1 FItemID from t_Item   where FItemClassID=1 and  FNumber =@RKJS_GYSBH)endelsebeginset  @Errors ='客户代码为:'+@RKJS_GYSBH+'---k3不存在'rollback tran   --回滚returnend--期间   GETDATE()截取---》数据库存在Bug--select @FText6=cast(cast(substring(cast(isnull(@RKJS_XSRQ,GETDATE())as varchar),6,2) as int)as varchar)select @FText6=cast(cast(DATENAME(MONTH,@RKJS_XSRQ) as int)as varchar)select @FBase8=FCurrencyID from t_Currency where FNumber=@RKJS_BZ  --币种declare @FDecimal2 decimal(23, 6) --汇率 RKJS_HLv    根据币种,获取汇率,如果是人名币,汇率是1if(@RKJS_BZ='CNY')beginset @FDecimal2=1endelsebeginset @FDecimal2=(select  top 1 FExchangeRate from t_Currency where  FNumber=@RKJS_BZ)end  --业务员select @RKJS_Empt_ID=FID from t_Emp where FName=@RKJS_EmptINSERT INTO t_BOS200000002(FID,FClassTypeID,FBillNo,FMultiCheckStatus,FComboBox,FComboBox1,FText,FBase,FBase1,FBase4,FDate,FBiller,FInteger2,FUser,FDate1,FText6,FText12,FBase8,FBase9,FDecimal2) Values(@FInterID,291790021,@FBillNo,@FMultiCheckStatus,@FComboBox,@RKJS_YWType,'0',@FDept,@RKJS_GYSBH_id,0,@RKJS_XSRQ,16394,0,16394,@RKJS_XSRQ,@FText6,'',@FBase8,ISNULL(@RKJS_Empt_ID,0),@FDecimal2)-----------------------------------------------------------------------------------------declare @JSMX_WLBH_ID int       -- 物料IDdeclare @JSMX_WLBH_Name varchar(50)-- 物料代码名称declare @JSMX_BatchNo varchar(50)     --VIN/桥序列/批号declare @JSMX_SL  decimal(23, 6)      --数量declare @JSMX_JSHJ  decimal(23, 6)     --含税单价  JSMX_JSHJdeclare @JSMX_BGDH  varchar(50)           --报关单号declare @JSMX_BGDWLMC  varchar(50)           --报关单物料名称(报关名称)declare @JSMX_YSRQ varchar(500)   --应收日期  2020-10-11*2020-10-23*2020-10-31declare @JSMX_SKJE  varchar(500)    --收款金额     100*200*300declare @JSMX_SKJE_BenWeiBi  varchar(500)    --收款金额本位币  100*200*300declare @JSMX_HTH_ID int        -- 合同号IDdeclare @FBase3 int                --  // 单位 FBase3 "辆"declare @FDecimal  decimal(8, 2)     --税率declare @FPrice1  decimal(23, 6)       --不含税单价declare @FAmount3  decimal(23, 6)       --不含税金额declare @FAmount5  decimal(23, 6)       --不含税金额本位币declare @FAmount  decimal(23, 6)     --含税金额  JSMX_JSHJ 价税合计原币=含税单价*数量 FAmountdeclare @FAmount6  decimal(23, 6)     --含税金额本位币  税合计本位币=含税单价*数量*汇率 @FAmount6declare @FAmount1  decimal(23, 6)      --税额=计税合计-金额 @FAmount1declare @FAmount7  decimal(23, 6)      --税额本位币=(计税合计-金额)*汇率 @FAmount7set @JSMX_HTH=''set @FEntry=1declare cursor_entry cursor forselect JSMX_WLBH_Name,JSMX_BatchNo,JSMX_SL,JSMX_JSHJ,JSMX_HTH,JSMX_BGDH,JSMX_BGDWLMC,JSMX_YSRQ,JSMX_SKJE from t_esb_SoldOutStock where IsRead=0 and RKJS_DJBH=@FBillNoopen cursor_entry -- 打开游标fetch next from cursor_entry into @JSMX_WLBH_Name,@JSMX_BatchNo,@JSMX_SL,@JSMX_JSHJ,@JSMX_HTH,@JSMX_BGDH,@JSMX_BGDWLMC,@JSMX_YSRQ,@JSMX_SKJEwhile @@fetch_status=0 -- 提取成功,进行下一条数据的提取操作BEGIN--产品代码-FBase2set @JSMX_WLBH_ID=0if exists(select top 1 FNumber from t_ICItem where  FName=@JSMX_WLBH_Name)beginset @JSMX_WLBH_ID=(select top 1 FItemID from t_ICItem where FName=@JSMX_WLBH_Name)endelsebeginset  @Errors =@Errors+'物料名称为:'+@JSMX_WLBH_Name+'---k3不存在'rollback tran   --回滚returnend--// 合同号/合同小号 JSMX_HTH FBase7set @JSMX_HTH_ID=0if exists(select * from t_Item   where FItemClassID=3007 and FName =@JSMX_HTH)beginset @JSMX_HTH_ID=(select top 1 FItemID from t_Item   where FItemClassID=3007 and FName =@JSMX_HTH)endelsebeginset  @Errors =@Errors+'合同号名称为:'+@JSMX_HTH+'---k3不存在'rollback tran   --回滚returnend-- // 单位 FBase3 "辆"SELECT top 1 @FBase3=FItemID FROM T_MeasureUnit   where FName ='辆'--收款金额原币   FText15  JSMX_SKJE     rs7.getString("JSMX_SKJE")--收款金额本币 FText14  如果汇率=1   ==JSMX_SKJE--                        如果汇率<>1set  @JSMX_SKJE_BenWeiBi=0if (@RKJS_BZ='CNY')  --汇率=1beginset @JSMX_SKJE_BenWeiBi=@JSMX_SKJEendelse beginCREATE TABLE #JSMX_SKJE_BenWeiBi(JSMX_SKJE_BenWeiBi    varchar(555))set @JSMX_SKJE_BenWeiBi=''select @FDecimal2               --收款原币金额  汇率       返回本币金额INSERT #JSMX_SKJE_BenWeiBi    exec  proc_c_SoldOut_Update_Money  @JSMX_SKJE,@FDecimal2,@JSMX_SKJE_BenWeiBiSELECT @JSMX_SKJE_BenWeiBi=#JSMX_SKJE_BenWeiBi.JSMX_SKJE_BenWeiBi FROM #JSMX_SKJE_BenWeiBi;DROP TABLE #JSMX_SKJE_BenWeiBi; print @JSMX_SKJE_BenWeiBiend--// 税率  使用合同号区分 "FDecimal"--//SQD内销 ---》‘0.13’   SQZ外销 (   如果SQZ外销 ‘币种’=‘CNY’  )if(CHARINDEX('SQD',@JSMX_HTH)=1)  --存在beginset @FDecimal=0.13endelsebeginset @FDecimal=0end--// "FPrice1"  不含税单价=含税单价/1.13或者不含税单价=含税单价/(1+税率)set @FPrice1=0         set @FPrice1=@JSMX_JSHJ/(1+@FDecimal)--    // 不含税金额      不含税金额原币=不含税单价*数量 FAmount3set @FAmount3=0set @FAmount3=(@JSMX_JSHJ/(1+@FDecimal))*@JSMX_SL--不含税金额本位币 =不含税金额原币*汇率set @FAmount5=0set @FAmount5=@FAmount3*@FDecimal2--// 含税金额  JSMX_JSHJ 价税合计原币=含税单价*数量 FAmountset @FAmount=0set @FAmount= @JSMX_JSHJ*@JSMX_SL--// 含税金额本位币  税合计本位币=含税单价*数量*汇率set @FAmount6=0set @FAmount6=@JSMX_JSHJ*@JSMX_SL*@FDecimal2           --// 税额=计税合计-金额set @FAmount1=0   set @FAmount7=0       if(@FDecimal=0.13)beginset @FAmount1=@FAmount-@FAmount3set @FAmount7=@FAmount1     --税额本位币endelsebeginset @FAmount1=0set @FAmount7=@FAmount1endINSERT INTO t_BOS200000002Entry2(FID,FIndex,FBase2,FText2,FText4,FText7,FBase7,FBase3,FQty,FText15,FText14,FDecimal,FPrice1,FPrice,FAmount3,FAmount5,FAmount,FAmount6,FAmount1,FAmount7,FInteger3,FBase6,FText3,FText9,FText5,FText8,FID_SRC,FEntryID_SRC,FBillNo_SRC,FClassID_SRC,FText10,FText1,FText11,FBase5,FDecimal1,FText13) Values(@FInterID,@FEntry,@JSMX_WLBH_ID,@JSMX_BatchNo,@JSMX_BGDH,@JSMX_BGDWLMC,@JSMX_HTH_ID,@FBase3,@JSMX_SL,@JSMX_SKJE,@JSMX_SKJE_BenWeiBi,@FDecimal,@FPrice1,@JSMX_JSHJ,@FAmount3,@FAmount5,@FAmount,@FAmount6,@FAmount1,@FAmount7,0,0,'','','','',0,0,'',0,'','','',0,0,@JSMX_YSRQ)set @FEntry=@FEntry+1fetch next from cursor_entry into @JSMX_WLBH_Name,@JSMX_BatchNo,@JSMX_SL,@JSMX_JSHJ,@JSMX_HTH,@JSMX_BGDH,@JSMX_BGDWLMC,@JSMX_YSRQ,@JSMX_SKJEENDclose cursor_entry -- 关闭游标deallocate cursor_entry -- 释放游标
------------------------------------------------------------------------------endcommit tranend trybegin catchset @Errors= ERROR_MESSAGE()  --错误的完整信息IF @@TRANCOUNT > 0      --判断有没有事务BEGINrollback tranendend catchselect @FInterID                    select @Errors
END

获取存储过程最后select返回的结果集。SELECT 数据集返回值

因为select返回的结果是一个表。所以返回的结果需要用一个表接收。使用临时表接收。

被调用的存储过程最后是这样:返回了一个空标题的字段。

思路:基本思路是先创建一个临时表,通过INSERT ... EXEC ...语句将存储过程的返回结果保存到临时表中,接下来就可以像处理普通数据表那样对待这个临时表了。

            修改:用临时表接收返回结果集,把临时表的相关字段赋值给变量。

sqlserver--存储过程里面调用‘另外的存储过程’相关推荐

  1. server使用abp中调用存储过程 sql_ASP调用sql server 存储过程详解-附带实例-

    ado文档对使用指定属性创建新的 Parameter 对象. 语法 Set parameter = command.CreateParameter (Name, Type, Direction, Si ...

  2. shell 调用mysql 存储过程_shell调用mysql的存储过程以及SQL

    在华为的时候,还短暂接触和写过shell,调用oracle,后来转入java之后,比较少接触shell,一转眼回过头又要摸shell,去处理mysql,留一点笔记,以备后用. #!/bin/sh #t ...

  3. 存储过程里调用另一个存储过程的值

    第一种: USE [WMS] GO DECLARE @return_value int EXEC @return_value = [dbo].[Sys_GetSysNo]   @NoCode = N' ...

  4. SQL存储过程来调用webservice

    如果用存储过程来调用webservice 那存储过程的功能感觉能做好多事情了? 别自欺欺人了.那些功能还是webservice来实现的... 完整的webservice代码:(也是默认的,新建.asm ...

  5. SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)...

    存储过程有三种返回: 1.   用return返回数字型数据 2.   用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行) 3.   直接在存储过程中用select返回结果集,可 ...

  6. sqlserver调用mysql存储过程_sqlserver调用存储过程

    1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-nam ...

  7. 网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(一)...

    因为昨天我的SQL Server 2008数据库在使用的时候突然就打不开了.而起前天还用它来写T-SQL语句来着.所以很是郁闷啊,到网上查询以后,不能解决,就干脆重新安装了一边,所以昨天整理的内容不能 ...

  8. oracle创建包 和调用,oracle创建函数和调用存储过程和调用函数的例子(区别)...

    创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...

  9. oracle数据块调用存储过程,VC调用存储过程的通用方法(ORACLE篇)

    先对上一篇调用SQLServer的存储过程作一点补充,就是如果存储过程里有Insert,update,delete等操作,最后返回结果集,按示例代码有可能得不到数据,因为返回的数据有可能不在第一个结果 ...

  10. hql调用mysql存储过程_hibernate调用mysql存储过程

    在mysql中创建两个存储过程,如下: 1.根据id查找某条数据: 1 CREATE PROCEDURE `findEmpById`(IN id INTEGER(11))2 begin3      s ...

最新文章

  1. 测一测你的blog魔症有多严重
  2. 纯css3鼠标经过出现文字或图片鼠标移走消失
  3. 软件测试2019:第四次作业
  4. nodejs+express +jade模板引擎 新建项目
  5. Effective C++笔记_条款31将文件间的编译依存关系降至最低
  6. 第四范式陈雨强:做机器学习平台天然就是新基建丨新基建50人
  7. 将android中如何调整Toast位置?
  8. 临牌过期保险能理赔吗?
  9. 【CVTE Web后台开发实习生 线下面试】总结
  10. 2021-08-08三大范式与JDBC
  11. DialogBox和DialogBoxParam函数
  12. 用英语推销计算机设备,销售电脑的英语对话
  13. ACL2019之对话系统
  14. 中基鸿业如何投资理财
  15. web服务器和app服务器
  16. 找到100亿个URL中重复的URL
  17. linux 终端窗口最大化,如何设置终端打开最大化
  18. 关于图像opencv中对于长宽的定义
  19. Sketch for mac(矢量绘图UI设计软件)91中文最新版
  20. Eclipse里exadel studio pro与其他工具的冲突

热门文章

  1. 谁还不知道,在线CAD有多好用!
  2. VUE跨域问题Access to XMLHttpRequest at ‘http://localhost
  3. Word2019如何从第三页开始设置页码
  4. 三菱fx2n做从站的modbus通讯_触摸屏与施耐德PLC通讯说明
  5. 激光SLAM后端优化总结之卡尔曼滤波
  6. VNPY 价差交易模块的使用学习
  7. python怎么返回布尔值_尝试从函数返回布尔值
  8. Mac note -one
  9. Java-获取年月日对应的天干地支
  10. Ubuntu Multipass 尝鲜