SQL数据库之 ------不能重复录入select count(1)
----------------------------------------------------------------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
-------------------------------------------程序效果

---