SQL 儲存過程 超市小票列印

2022-02-26 21:43:41 字數 3592 閱讀 7956

create

database chaoshils--建立乙個資料庫

gouse chaoshils--使用這個資料庫

gocreate

table gongying--建立乙個**商的**

( gcode

intprimary

keyidentity(1001,1),--**商編號,主鍵

gname varchar(20),--名稱

gsdh varchar(20),--**

gsdz varchar(20)--位址)

--向**商**中新增資料

insert

into gongying values('

可口可樂公司

','232323

','山東青島')

insert

into gongying values('

花生油公司

','323232

','山東濟南')

insert

into gongying values('

綠茶公司

','565656

','山東日照')

insert

into gongying values('

礦泉水公司

','656565

','山東濰坊')

insert

into gongying values('

紅星二鍋頭公司

','878787

','北京')

create

table chaoshi--建立乙個超市的**

( ccode

intprimary

key,--產品編號

cname varchar(20),--產品名稱

cshu int,--產品數量

cjin decimal(18,2),--進價

cshou decimal(18,2),--售價

cgcode int

--**商編號,**商表的外來鍵

)--向超市**中新增資料

insert

into chaoshi values(10001,'

可口可樂

',100,2,3,1001

)insert

into chaoshi values(10002,'

花生油',50,40,80,1002

)insert

into chaoshi values(10003,'

綠茶',100,8,20,1003

)insert

into chaoshi values(10004,'

礦泉水',150,1,2,1004

)insert

into chaoshi values(10005,'

紅星二鍋頭

',120,3,5,1005

)--建立乙個小票的**,不能直接插入資料,在下面儲存過程中根據商品的銷售情況向裡面新增資料

create

table

xiaopiao

( xcode

int,--產品編號,超市表的外來鍵

xname varchar(20),--產品名稱

xshu int,--購買的產品數量

xjiage decimal(18,2),--產品單價

zjia decimal(18,2) --產品總價

)select

*from

gongying

select

*from

chaoshi

create

proc liushui --建立乙個儲存過程用來記錄賣出貨物的數量**新增於小票表中

@mai

int,--返回乙個引數,購買的數量

@hcode

int--購買的商品的編號

asbegin

declare

--宣告一下使用下面定義的變數

@name

varchar(20

),@shu

int,

@danjia

decimal(18,2

),@zong

decimal(18,2

),@count

intselect

@name

=cname from chaoshi where ccode=

@hcode

--通過返回引數的商品編號在超市中查詢商品名稱賦值於變數@name中

select

@shu

=cshu from chaoshi where ccode=

@hcode

--通過編號查詢此商品現有的而數量賦值於變數@shu中

select

@danjia

=cshou from chaoshi where ccode=

@hcode

--通過編號查詢此產品的**賦值於變數@danjia中

set@zong

=@danjia

*@mai

--貨物**@danjia乘以返回引數中購買的數量@mai等於總**,用變數@zong接收一下

select

@count

=count(*)from chaoshi where ccode=

@hcode

--檢視一下返回的引數商品編號是否存在,存在值為1,不存在為0,接收於變數@count中

if@count

>

0--如果@count不為0,則存在這種商品

begin

if@shu

>

=@mai

--如果超市內商品的數量大於或者等於購買的數量

begin

insert

into xiaopiao values(@hcode,@name,@mai,@danjia,@zong)--則向xiaopiao表中新增購買資訊

select xcode as 編號,xname as 產品名稱,xshu as 購買數量,xjiage as 單價,zjia as 合計 from xiaopiao--把新增到**中的資訊查詢一下,列名改為漢字顯示

endelse

if@shu

<

@mai

--如果超市內的商品數量小於購買的數量

begin

print

'貨物不足

'--則,貨物不足

endend

else

if@count=0

--如果@count值為0,則沒有這件商品

begin

print

'沒有此商品

'end

endgo

--選中執行此儲存過程,只能執行一次

exec liushui 50,10008

--此處是執行儲存過程liushui並返回兩個引數,數量和商品編號,可修改數量以及商品引數選擇其他商品

--此處商品編號的引數在表中並有此編號的商品,則執行@count=0這一步,沒有此商品,因此小票表中就不會新增數

--據select

*from xiaopiao--檢視小票表中儲存的資料

RDLC不預覽列印 超市小票

當然,寫到這,肯定是能列印了 如果要做到超市小票的列印有以下幾個問題 1.小票需要在後台列印 2.小票沒有分頁,或者說,小票的長度是0,或者是無限長 後台列印就要用到微軟的那篇文章了,這篇文章好是好,並且在網上很多版本,但是這段 是有問題的?privatevoidprintpage objectse...

SQL儲存過程

什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql語句而已啊?microsoft公司為什麼還要新增...

sql儲存過程

概念 sql server提供了一種方法,它可以將一些固定的操作集中起來由sql server資料庫伺服器來完成,以實現某個任務,這種方法就是儲存過程。儲存過程是sql語句和可選控制流語句的預編譯集合,儲存過程在資料庫中可由應用程式通過乙個呼叫執行,而且允許使用者申明變數 有條件的執行以及其它強大的...