SQL數(shù)據(jù)庫之 ------不能重復錄入select count(1)
----------------------------------------------------------------SQL腳本
IF? EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sf_XS12銷售發(fā)票]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[sf_XS12銷售發(fā)票]
GO
CREATE???? proc [dbo].[sf_XS12銷售發(fā)票] @制單人 char(20),@發(fā)票代碼 varchar(20),@號碼 varchar(20)?? ?
as?? ?
begin tran?? ?
---- 數(shù)據(jù)報警? 發(fā)票號重復檢查------
?? ?declare @報警 varchar(40),@js int
?? ?select @報警 = ''
?? ?select @js=count(1) from 銷售發(fā)票 where 號碼=@號碼
?? ?if @js>=1
?? ??? ?select @報警 ='發(fā)票號重復 !'
?? ??? ?if len(@報警)>0 ?
?? ??? ? begin ?
?? ??? ??? ? raiserror( @報警, 16, 1 ) ?
?? ??? ??? ?commit ?
?? ??? ??? ?return ?
?? ??? ?end? ?
?
?? ?insert into 銷售發(fā)票 (編號 ,單據(jù)號 ,發(fā)票代碼 ,號碼 ,客戶編號 ,結算客戶 ,客戶名稱 ,購貨人 ,序號 ,貨號 ,品名 ,規(guī)格 ,單位 ,數(shù)量 ,銷售價 ,稅率 ,稅價合計 ,?? ?
?? ??? ??? ??? ??? ??? ?不含稅價 ,不含稅額 ,稅額 ,備注 ,打印人 ,打印次數(shù) ,制單人 ,制單時間,開票日期)?? ?
??
??? ? select a.編號 ,a.單據(jù)號 ,@發(fā)票代碼 發(fā)票代碼 ,@號碼 號碼,a.客戶編號 ,a.結算客戶 ,b.名稱
,left(a.購貨人,6) ,0 ,a.貨號 ,c.品名 ,c.規(guī)格 ,left(c.單位,2) ,a.數(shù)量 ,a.銷售價 ,c.稅率
,a.稅價合計 ,?? ?
?? ??? ??? ??? ?round(a.銷售價*100/(100.0+c.稅率),4) 不含稅價 ,?? ?
?? ??? ??? ??? ?round(round(a.銷售價*100/(100.0+c.稅率),4)*a.數(shù)量,2) 不含稅額 ,?? ?
?? ??? ??? ??? ?a.稅價合計-round(round(a.銷售價*100/(100.0+c.稅率),4)*a.數(shù)量,2)? 稅額 ,?? ?
?? ??? ??? ??? ?a.備注 ,null 打印人 ,0 ,@制單人 ,getdate(),convert(int,convert(char(8),getdate(),112))?? ?
?? ??? ?from 銷售單歷史 a?? ?
?? ??? ?left join 銷售發(fā)票 as f on a.編號=f.編號 and @發(fā)票代碼=f.發(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
-------------------------------------------程序效果

?---