⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 procgetcomputermoneybiao.sql

📁 扬州升瑞售楼系统2000扬州升瑞售楼系统2000扬州升瑞售楼系统2000扬州升瑞售楼系统2000扬州升瑞售楼系统2000
💻 SQL
字号:
Alter proc procGetComputerMoneyBiao
            @XiaoQuName varchar(20),
            @DongHao varchar(10),
            @ShiHao varchar(10),

            @Ellect varchar(20) output
As
            Declare @intCountA int

            Declare @price float

            Declare @LeiChen int,@a int,@b int 
            Declare @JiaGe float   
            Declare @strFangXing varchar(20)         
            
            Declare @MianJi float,@MianJiYu float
            -----------------------------------
            Declare @BiaoDaShi varchar(2000)

            Declare @BiaoDaShiOne varchar(2000),@XiangMu varchar(20),@BiaoDaShiTwo varchar(100)
            Declare @intB int,@bLong int,@cLong int

            Declare @DanWei varchar(20),@MoneyBiaoJuen float,@MoneyMi int

            Declare @CountNum int    --记录的个数

            Declare curFbwt cursor for      --定义一个游标
            Select 计算表达式,计算项目 from ComputerProject where 小区名称=@XiaoQuName

            Declare @XiangMuName varchar(20)  --项目名称

             Select @a=count(*) from ShiHao where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@ShiHao
                     if @a=0 --表明没有这个记录
                     Select @Ellect='没有这个室号!' 

                     if @a<>0 
                     Begin
                         --计算基价
                     Select @LeiChen=楼层,@strFangXing=房型 from ShiHao where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@ShiHao
                         --得到了楼的价格
--print '1    '+ @strFangXing
--print '2    '+ @LeiChen
                     Select @JiaGe=价格 from LeiJia where 小区名称=@XiaoQuName and 楼层=@LeiChen
                         --得到面积
--print '3    '+ @JiaGe
                     Select @MianJi=实测总计面积,@MianJiYu=预测总计面积 from FangXing where 房型编号=@strFangXing
--print '4    '+ @MianJiYu
--print '5    '+ @MianJi
                             if @MianJi<1.0  --表明没有实测总计面积
                                           --采用预测总计面积
                                        Begin
                                             if @MianJiYu<1.0 --也没有预测总计面积 出错!
                                             Select @Ellect='面积没有输入!' 
                                             if @MianJiYu>1.0 --用预测总计面积计算
                                             select @price=@JiaGe * @MianJiYu
                                        End


                             if @MianJI>1.0  --表明有实测总计面积
                                             --采用实测总计面积计算
                                Begin
                                Select @price=@JiaGe * @MianJi
                                End

                             --基价加入MoneyList表中(费用列表)
                            Delete from MoneyList where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@ShiHao 
                             --查找是否已有当前项目的价格
                            Select @b=count(*) from MoneyList where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@ShiHao and 项目名称='基价' 
                                    if @b=0 --表明没有当前项目价格
                                            --加入新的
                                            Begin
                                            Insert into MoneyList(小区名称,幢号,室号,项目名称,金额) values(@XiaoQuName,@DongHao,@ShiHao,'基价',@price)
                                            End
                                    if @b<>0 --表明已有
                                            Update MoneyList set 金额=@price where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@SHiHao and 项目名称='基价'
                                           
                             --得到了基价
                             --清0
                             Select @price=0
                             ----------------------------------------------------------------------------------
                             --从这儿开始得到别的费用项目
                             --得到表达式




                           Select @CountNum=count(*) from ComputerProject where 小区名称=@XiaoQuName


         Open curFbwt                    --打开游标

         while @CountNum<>0
         Begin
                fetch next from curFbwt into @BiaoDaShi,@XiangMuName
                while @@fetch_status=-1 
                break 
                select @CountNum=@CountNum-1
                  -- print @CountNum                           

                           --处理数据
                             --可能有好几个记录,下面的只能处理一条记录


                                                      Select @cLong=len(@BiaoDaShi)

                                                      Select @BiaoDaShiOne=reverse(@BiaoDaShi)
                                                      Select @BiaoDaShiOne=rtrim(@BiaoDaShiOne)
                                                      Select @BiaoDaShiOne=ltrim(@BiaoDaShiOne)
                                                      Select @bLong=charindex('+',@BiaoDaShiOne)
                                                      Select @bLong=@bLong-1

                                                      while @cLong<>@bLong
                                                      Begin
--print '------------'
                                                                Select @BiaoDaShi=rtrim(@BiaoDaShi)
                                                                Select @BiaoDaShi=ltrim(@BiaoDaShi)
                                                                Select @cLong=len(@BiaoDaShi)

                                                                Select @intB=charindex('+',@BiaoDaShi)
                                                                Select @BiaoDaShiTwo=@BiaoDaShi
                                                                Select @BiaoDaShi=right(@BiaoDaShi,@cLong-@intB)
                                                                Select @intB=@intB-1

                                                                if @bLong=@cLong             --表明是最后一个项目
                                                                Begin
                                                                --处理最后一项的MONEY
                                                                          Select @MoneyBiaoJuen=收费标准,@DanWei=单位 from GetMoneyProject where 小区名称=@XiaoQuName and 项目名称=@BiaoDaShiTwo
--print '6    '+ @BiaoDaShiTwo
                                                                          Goto fbwtComputerMoney
                                                                End
                                                                --处理前几项
                                                                Select @XiangMu=left(@BiaoDaShiTwo,@intB)
                                                                --Select @intCountA=count(*) from GetMoneyProject where 小区名称=@XiaoQuName and 项目名称=@XiangMu
                                                                            --if @intCountA=0 --表明收费项目设置中没有这一项,可能是因为删除引起的
                                                                                            --在当前操作表中删除这一项
                                                                                            --Begin
                                                                                            --Delete from MoneyList where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@ShiHao and 项目名称=@XiangMu
                                                                                            --Continue
                                                                                            --End
                                                                Select @MoneyBiaoJuen=收费标准,@DanWei=单位 from GetMoneyProject where 小区名称=@XiaoQuName and 项目名称=@XiangMu
--print '7    '+ @XiangMu

                                                                fbwtComputerMoney:                      
                                                                            if @MianJi<1  --表明没有实测总计面积
                                                                                 --采用预测总计面积
                                                                            Begin
                                                                            select @MoneyMi=0
                                                                            Select @MoneyMi=charindex('M',@DanWei)
                                                                            if @MoneyMi<>0        --表明有面积的加入计算
                                                                            select @price=@MianJiYu * @MoneyBiaoJuen
                                                                            End


                                                                           if @MianJI>1  --表明有实测总计面积
                                                                                           --采用实测总计面积计算
                                                                                      Begin
                                                                                      select @MoneyMi=0
                                                                                      Select @MoneyMi=charindex('M',@DanWei)
                                                                                      if @MoneyMi<>0        --表明有面积的加入计算
                                                                                      select @price=@MianJi * @MoneyBiaoJuen+@price
                                                                                      if @MoneyMi=0--表明没有面积的加入计算
                                                                                      select @price=@MOneyBiaoJuen+@price

--print @DanWei
--print '??????'
--print @MoneyMi
--print '>>>>>>>>>>>>>>>>>>>>>'
--print @MianJI
--print '!!!!!!!!!!'
--print @MoneyBiaoJuen
--print '<<<<<<<<<<<<<<<<<<<<'
--print @price
                                                                                      End
--print '8    '+ @price
                                                        End

                                                               ---------------------加入到MoneyList表中, 要用到项目名称
                                                               Select @b=count(*) from MoneyList where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@ShiHao and 项目名称=@XiangMuName 
                                                                        if @b=0 --表明没有当前项目价格
                                                                                --加入新的
                                                                                Begin
                                                                                Insert into MoneyList(小区名称,幢号,室号,项目名称,金额) values(@XiaoQuName,@DongHao,@ShiHao,@XiangMuName,@price)
                                                                                End
                                                                        if @b<>0 --表明已有
                                                                                Update MoneyList set 金额=@price where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@SHiHao and 项目名称=@XiangMuName
--print '9    '+@XiangMuName

                                                                         Select @price=0




                                                               End

                           Deallocate curFbwt             --放游标

 
                                                                        Select @price=0
                                                                        Select @price=sum(金额) from MoneyList where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@ShiHao
                                                                        Select @b=count(*) from MoneyList where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@ShiHao and 项目名称='总价' 
                                                                        if @b=0 --表明没有当前项目价格
                                                                                --加入新的
                                                                                Begin
                                                                                
                                                                                Insert into MoneyList(小区名称,幢号,室号,项目名称,金额) values(@XiaoQuName,@DongHao,@ShiHao,'总价',@price)
                                                                                End
                                                                        if @b<>0 --表明已有
                                                                                Update MoneyList set 金额=@price where 小区名称=@XiaoQuName and 幢号=@DongHao and 室号=@SHiHao and 项目名称=@XiangMuName
--print '9    '+@XiangMuName

                                                                 select @Ellect='成功'

                     End 
Go 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -