欢迎光临散文网 会员登陆 & 注册

SQL数据库之 ------不能重复录入select count(1)

2022-12-15 17:26 作者:waiter_game  | 我要投稿

----------------------------------------------------------------SQL脚本
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sf_XS12销售发票]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[sf_XS12销售发票]
GO

CREATE     proc [dbo].[sf_XS12销售发票] @制单人 char(20),@发票代码 varchar(20),@号码 varchar(20)    
as    
begin tran    
---- 数据报警  发票号重复检查------
    declare @报警 varchar(40),@js int
    select @报警 = ''
    select @js=count(1) from 销售发票 where 号码=@号码
    if @js>=1
        select @报警 ='发票号重复 !'
        if len(@报警)>0  
         begin  
             raiserror( @报警, 16, 1 )  
            commit  
            return  
        end   
 
    insert into 销售发票 (编号 ,单据号 ,发票代码 ,号码 ,客户编号 ,结算客户 ,客户名称 ,购货人 ,序号 ,货号 ,品名 ,规格 ,单位 ,数量 ,销售价 ,税率 ,税价合计 ,    
                        不含税价 ,不含税额 ,税额 ,备注 ,打印人 ,打印次数 ,制单人 ,制单时间,开票日期)    
         select a.编号 ,a.单据号 ,@发票代码 发票代码 ,@号码 号码,a.客户编号 ,a.结算客户 ,b.名称 ,left(a.购货人,6) ,0 ,a.货号 ,c.品名 ,c.规格 ,left(c.单位,2) ,a.数量 ,a.销售价 ,c.税率 ,a.税价合计 ,    
                round(a.销售价*100/(100.0+c.税率),4) 不含税价 ,    
                round(round(a.销售价*100/(100.0+c.税率),4)*a.数量,2) 不含税额 ,    
                a.税价合计-round(round(a.销售价*100/(100.0+c.税率),4)*a.数量,2)  税额 ,    
                a.备注 ,null 打印人 ,0 ,@制单人 ,getdate(),convert(int,convert(char(8),getdate(),112))    
        from 销售单历史 a    
        left join 销售发票 as f on a.编号=f.编号 and @发票代码=f.发票代码 and @号码=f.号码    
             ,客户清单 b,商品清单 c,(select distinct 标识字段1 from 选择记帐记录表 where 记帐人=@制单人 and 操作文件名 in ('XS12销售明细') ) d    
         where a.客户编号=b.客户编号 and a.货号=c.货号 and a.编号 = d.标识字段1 and f.编号 is null    
     
commit

-------------------------------------------程序效果




 ---

SQL数据库之 ------不能重复录入select count(1)的评论 (共 条)

分享到微博请遵守国家法律