1. Trang chủ
  2. » Công Nghệ Thông Tin

SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx

25 321 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 16,37 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đối với trường hợp muốn liệt kê một mẩu tin ứng với một mã loại hóa đơn mua hàng được chọn, bạn khai báo gọi thủ tục nội tại như ví dụ UD-7-2.. 272 Ung dụng: Sử dụng thủ tục nội tại tron

Trang 1

254 Ung dung: Sit dụng thủ tục nội tại trong ứng dung

Chẳng hạn, bạn khai báo thủ tục nội tại cho phép liệt kê doanh thu

bán hàng theo ngày như ví dụ UD-5-7

Ơ doanh thu theo ngày|

CREATE PROC udsSalesByDate

AS

SELECT Convert (char (10) ,DueDate, 103) AS SalesDate,

SUM (Quantity*Price* (1+VATRate/100)-Discount) As

SalesAmount

FROM SalesInvoices S, SalesInvoiceDetails D

WHERE S.InvoiceNo = D.InvoiceNo

GROUP BY Convert (char (10) , DueDate, 103)

Hình UD-ð-2: Doanh thu bán hàng theo ngày

Tương tự như trên, bạn có thể khai báo thủ tục nội tại để liệt kê

doanh thu theo tuần trong tháng hiện hành như ví dụ UD-5-8

Báo cáo doanh thu theo tuần|

CREATE PROC udsSalesByWeek

AS

SELECT DATEPART (ww, DueDate) AS SalesWeek,

Trang 2

4 ù

Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng 255 M SUM (Quantity*Price* (1+VATRate/100) -Discount) As

FROM SalesInvoices S, SalesInvoiceDetails D

WHERE S.InvoiceNo = D InvoiceNo

GROUP BY DATEPART (ww, DueDate)

GO

Bạn có thể gọi thủ tục trên và kết quả trình bày như hinh UD-5-3

udsSalesByWeek

Hình UD-ð-8: Doanh thu bán hàng theo tuân

Bạn cũng có thể khai báo thủ tục nội tại cho phép người sử dụng báo cáo doanh số bán hàng theo sản phẩm như ví dụ UD-5-9

CREATE PROC udsSalesByProduct

@ProductId VARCHAR (10)

AS

SELECT P.ProductID, ProductNameInVietnamese,

SUM (Quantity*Price* (1+VATRate/100)-Discount) As

SalesAmount

FROM Products P, SalesInvoiceDetails D

WHERE P Product ID = D Product ID

AND D ProductId = CASE @ProductId

WHEN '' THEN D ProductId

ELSE @ProductId END

GROUP BY P.ProductID, ProductNameInVietnamese

GO

Đối với trường hợp thủ tục trên, chúng ta có thể gọi nó bằng hai cách, cách thứ nhất là cung cấp mã sản phẩm là rỗng thì danh sách sản phẩm trình bày như hình UD-5-4 '

Trang 3

256 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dung

uds5alesByProduct ''

GO

cre

Hình UD-ð-4: Doanh thu của sản phẩm

Nếu bạn muốn liệt kê doanh số bán hàng của một sản phẩm thì khai

báo như hình UD-5-5

Hinh UD-5-5: Doanh số bán hàng của một sản phẩm

Trong trường hợp liệt kê doanh thu theo khách hàng, bạn có thể khai báo thủ tục nội tại như ví dụ UD-B-10

CREATE PROC udsSalesByCustomers

@CustomerTđ CHAR (5)

AS

SELECT C.CugtomerID, CompanyNameInVietnamese,

SUM (Quantity*Price* (1+VATRate/100) -Discount) As

Trang 4

Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng 257 M?

ON S.InvoiceNo = D InvoiceNo `

AND C.CustomerTđ = CASE @CustomerTả

WHEN '' THEN C.CustomerId

ELSE @CustomerId END

GROUP BY C.CustomerID, CompanyNameInVietnamese

GO

Nếu bạn gọi thủ tục trên với mã khách hàng là rỗng thì danh sách

khách hàng cùng với doanh thu của họ trình bày như hình UD-ð-6

Công ty Cổ phần Sưzumi Vietnam ˆ 2397650.000000 Tập đoàn UCIA USA : 2185000.000000 Công ty Đa quốc gia UFCA 1 ` 879500.000000) Công ty Cổ phần ReruiVietnam | 726250,000000

Hình UD-B-6: Doanh thu theo khách hàng

Trong trường hợp liệt kê doanh số bán hàng cho một khách hàng, bạn có thể khai báo tương tự như hình UD-ð-7

Hinh UD-5-7: Doanh sé ban hàng cho một khách hàng

Bạn cũng có thé liệt kê doanh thu bán hàng theo tỉnh thành bằng cách khai báo như ví du UD-5-11

Trang 5

Hình UD-6-1: Thông tin một nhà cung cấp

Ứng với trường hợp xóa mẩu tin trong bảng Suppliers, bạn có thể khai báo thủ tục có tên udsDeleteSuppliers như ví dụ UD-6-3

SupplierlId = CASE @SupplierId

WHEN '' THEN SupplierId

ELSE @SupplierId END

GO

Bạn có thể gọi thủ tục nội tại có tên udsDeleteSuppliers với hai

trường hợp, trường xóa tất cả mẩu tin trong bảng Suppliers thì bạn khai

báo như ví dụ UD-6-4

Nếu cho phép người sử dụng thêm mới hay cập nhật thông tin nhà

cung cấp, bạn có thể khai báo thủ tục nội tại dùng chung cho hai trường hợp

này dựa và mã nhà cung cấp như ví dụ UD-6-6

Trang 6

INSERT INTO Suppliers

VALUES (@SupplierID, @CompanyNameInVietnamese,

@CompanyNameInSecondLanguage, 1, @ContactName,

@ContactTitle, @Address, @ProvinceID,

@Telephone, @FaxNumber, @SupplierTypeID,

Discont inued = @Discontinued

WHERE SupplierID = @SupplierID

GO

2.2, Bang PurchaseInvoiceTypes

Tuong tu nhu bang SalesInvoiceTypes, đối với hành động truy vấn dữ liệu cho bảng PurchaselnvoiceTypes, chúng ta cần khai báo thủ tục nội tại như ví dụ UD-7

Trang 7

Ung dụng: Sử dụng thủ tục nội tại trong ứng dụng 271

Ví dụ UD-7: Khai báo thủ tục nội tại truy vấn

CREATE PROC udsViewPurchaseInvoiceTypes

@InvoiceTypeld CHAR (3)

AS

SELECT * FROM PurchaseInvoiceTypes

WHERE

InvoiceTypeld = CASE @InvoiceTypeId

WHEN '' THEN InvoiceTypeId

ELSE @InvoiceTypeId END

Hình UD-7: Loại hóa đơn mua hàng

Đối với trường hợp muốn liệt kê một mẩu tin ứng với một mã loại hóa đơn mua hàng được chọn, bạn khai báo gọi thủ tục nội tại như ví dụ UD-7-2

Hoá đớn mua hàng khuyến mãi

Hình UD-7-L: Thông tin một mã loại hóa đơn mua hang

Trang 8

272 Ung dụng: Sử dụng thủ tục nội tại trong ứng dụng Trong trường hợp xóa mẩu tin trong bảng PurchaselnvoiceTypes, bạn có thể khai báo thủ tục có tên udsDeletePurchaselnvoiceTypes như ví

InvoiceTypeld = CASE @InvoiceTypeld

WHEN '' THEN InvoiceTypeId

ELSE @InvoiceTypelId END

GO

Bạn có thể xóa loại hóa đơn mua hàng bằng cách gọi thủ tục nội tại

có tên udsDeletePurchaselnvoiceTypes với hai trường hợp, đối với trường hợp xóa tất cả mẩu tín trong bảng thì bạn khai báo như ví dụ UD-7-4

Ví dụ UD-7-4: Khai báo xóa tất cả NI TU]

` 6: Khai báo thêm và cập nhật

CREATE PROC udsInsUpdPurchaseInvoiceTypes

Trang 9

Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng 273 MP?

Ví dụ UD-8: Khai báo thủ tục nội tai truy vấn|

CREATE PROC udsViewPurchaseTnvoiceBatchs

@InvoiceBatchNo VARCHAR (10)

AS

SELECT * FROM PurchaseInvoiceBatchs

WHERE

InvoiceBatchNo = CASE @InvoiceBatchNo

WHEN '' THEN InvoiceBatchNo

ELSE @InvoiceBatchNo END

Khi thực thi thủ tục trên, bạn có thể tìm thấy danh sách mẩu tin

trong bảng PurchaseInvoiceBatchs như hình UD-8

Hình UD-8: Danh sách lô hóa đơn mua hàng

Nếu liệt kê một mẩu tin ứng với một lô hóa đơn mua hàng được chọn,

bạn khai báo gọi thủ tục nội tại như ví dụ UD-8-2

Trang 10

Hình UD-8-1: Thông tin một lô hóa đơn mua hàng

Đối với trường hợp xóa mẩu tin trong bảng PurchaseInvoiceBatchs, bạn có thể khai báo thủ tục có tên udsDeletePurchaselnvoiceBatchs như ví

InvoiceBatchNo = CASE @InvoiceBatchNo

WHEN '' THEN InvoiceBatchNo

ELSE @InvoiceBatchNo END

GO

Sau khi tạo thủ tục nội tai udsDeletePurchaseInvoiceBatchs, ban có

thể gọi thủ tục nội tại này với hai trường hợp, nếu xóa tất cả mẩu tin trong bảng bạn khai báo như ví dụ UD-8-4

Ví dụ UD-8-4: Khai báo xóa €ất cả mẩu tin

udsDeletePurchaseInvoiceBatchs ''

GO

Nếu xóa một mẩu tin, bạn khai báo gọi thủ tục

udsDeletePurchaseInvoiceBatchs nhu vi du UD-8-5

Trang 11

Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng 275 °

INSERT INTO PurchaseInvoiceBatchs

VALUES (@InvoiceBatchNo, @InvoiceBatchDate,

Ví dụ UD-9: Khai báo thủ tục nội tại truy vấn|

CREATE PROC udsViewPurchaseTnvoices

@InvoiceNo VARCHAR (10)

AS

SELECT * FROM PurchaseInvoices

WHERE

InvoiceNo = CASE @InvoiceNo

WHEN '' THEN InvoiceNo

ELSE @InvoiceNo END

Nếu thực thi thủ tục trên, bạn có thể tìm thấy danh sách mẩu tin ứng

với danh sách hóa đơn mua hàng như hình UD-9

Trang 12

276 Ung dụng: Sử dụng thủ tục nội tại trong ứng dụng

Hình UD-9: Danh sách hóa đơn mua hàng

Tuy nhiên, trong một vài trường hợp người sử dụng muốn liệt kê một mẩu tin ứng với một hóa đơn mua hàng với mục đích trình bày hay cập nhật, bạn khai báo gọi thủ tục nội tại như ví dụ UD-9-2

Ví dụ UD-9-2: Khai báo liệt kê một hóa đơn mua hàn

udsViewSalesInvoices 'PI00000002'

GO

Khi thực thi thủ tục trên, bạn có thể tìm thấy thông tin của hóa đơn

mua hàng như hình UD-9-1

Hình UD-9-1: Thông tin một hóa đơn mua hàng

Nếu cho phép người sử dụng tìm kiếm hóa đơn mua hàng theo mã nhà cung cấp, bạn có thể khai báo thủ tục như ví dụ UD-9-3

Ví dụ UD-9-3: Khai báo liệt kê danh sách hóa don mu

ima nha cung cap

CREATE PROC udsViewPurchaseInvoicesBySupplier

Trang 13

Ung dung: Sit dụng thủ tục nội tại trong ứng dụng

InvoiceNo = CASE @InvoiceNo

WHEN '' THEN InvoiceNo

ELSE @InvoiceNo END

AND SupplierId = CASE @SupplierId

WHEN '' THEN SupplierId

ELSE @SupplierId END

PI00000009 PBI004 2007-10-04 00:00:00 PB1 S0001

Hình UD-9-2: Dan], sách nhà cung cấp uà hóa don mua hang

Ngoài ra, bạn cũng có thể gọi thủ tục trên với mã nhà cung cấp là

Trang 14

Hình UD-9-3: Hóa đơn bán hàng của nhà cung cấp

Tương tự như phần quản lý hóa đơn bán hàng, chúng ta quản lý hóa đơn mua hàng theo lô, bạn cần khai báo thủ tục nội tại để liệt kê danh sách

hóa đơn mua hàng theo từng lô như ví dụ UD-9-6

Ví dụ UD-9-6: Khai báo liệt kê hóa đơn mua hàng

CREATE PROC udsViewPurchaseInvoicesByBatch

@InvoiceBatchNo VARCHAR (10)

AS

SELECT * FROM PurchaseInvoices

WHERE InvoiceBatchNo = @InvoiceBatchNo

Khi thực thi ví dụ trên, bạn có thể tìm thấy danh sách hóa đơn mua

hàng trình bày như hình UD-9-4

Hình UD-9-4: Danh sách hóa đơn mua hàng theo lô

Ứng với trường hợp xóa mẩu tin trong bảng PurchaseInvoices, bạn có thể khai báo thủ tục có tên udsDeletePurhcaselnvoices như ví dụ UD-9-8

CREATE PROC udsDeletePurchaseInvoices

@InvoiceNo VARCHAR (10)

Trang 15

WHEN '' THEN InvoiceNo

ELSE @InvoiceNo END

GO

Ban có thể gọi thủ tục nội tại có tên udsDeletePurchaselnvoices với

hai trường hợp, trường hợp xóa tất cả mẩu tin trong bảng bạn khai áo như

vi dy UD-9-9

udsDeletePurchaseInvoices ''

So

Đối với trường hợp xóa một mẩu tin, bạn khai báo gọi thủ tục

udsDeletePurchaseInvoices nhu vi du UD-9-10

Ví dụ UD-9-10: Khai báo xóa một mâu tín

uđsDeletePurchaseInvoices 'P100000015'

GO

Ngoài ra, bạn cũng có thể khai báo thủ tục nội tại dùng cho trường hợp thêm mới hay cập nhật thông tin hóa đơn mua hàng như ví dụ UD-9-11,

Ví dụ UD-9-11; Khai báo thêm và cập nhật

CREATE PROC udsInsUpdPurchaselInvoices

INSERT INTO PurchaseInvoices

VALUES (@InvoiceNo, @InvoiceBatchNo,

@DueDate, @InvoiceTypeld, @SupplierId,

Trang 16

Ví dụ UD-10: Khai báo thủ tục nội tại truy vấn|

CREATE PROC udsViewPurchaseInvoiceDetails

@InvoiceNo VARCHAR (10)

AS

SELECT * FROM PurchaseInvoiceDetails

WHERE InvoiceNo = @InvoiceNo

GO

Khi thực thi thủ tục nội tại trên, để liệt kê danh sách chỉ tiết hóa đơn

mua hàng, bạn cân sử dụng phát biểu gọi thủ tục nội tại như ví dụ UD-10-1

Ví dụ UD-10-1: Khai báo gọi thủ tục nội tai

udsViewPurchaseInvoiceDetails 'PI00000002'

GO

Nếu thực thi thủ tục trên, bạn có thể tìm thấy danh sách mẩu tin ứng

với danh sách hóa đơn mua hàng như hình UD-10

44 PII0000002 P0004 50 9500 0 10

Hình UD-10: Danh sách chỉ tiết hóa đơn mua hàng

Trang 17

Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng 281 MP?

Tuy nhiên, trong trường hợp người sử dụng muốn liệt kê một mẩu tin

ứng với một hóa đơn mua hàng bao gồm thông tin chỉ tiết, bạn khai báo thủ tục nội tại như ví dụ UD-10-2

Ví dụ UD-10-2: Khai báo liệt kê một hóa đơn mua hi

CREATE PROC udsViewPurchaseInvoiceDetail

@InvoiceNo VARCHAR (10),

@ProductId VARCHAR (10),

@OrdinalNumber tinyint

AS

SELECT * FROM PurchaseInvoiceDetails

WHERE InvoiceNo = @InvoiceNo

AND ProductId = @ProductId

AND OrdinalNumber = @OrdinalNumber

GO

àng

Để liệt kê tất cả thông tin của hóa đơn mua hàng, bạn cân khai báo

gọi thủ tục nội tại vừa tạo trong ví dụ trên như ví dụ UD-10-3

Ví dụ UD-10-3: Khai báo gọi thủ tục nội tại udsViewPurchaseInvoice

theo, do chúng ta cài đặt Cascade khi thiết lập quan hệ giữa chúng

Tuy nhiên, để cho phép người sử dụng xóa một mẩu tin trong bảng

PurchaselnvoiceDetails, bạn có thể khai báo thủ tục có tên udsDeletePurchaselInvoiceDetails như ví dụ UD-10-4

Ví dụ UD-10-4: Khai báo xóa một mẩu tỉn|

CREATE PROC udsDeletePurchaseInvoiceDetail

@InvoiceNo VARCHAR (10),

@ProductId VARCHAR (10),

Trang 18

282 Ung dụng: Sử dụng thủ tục nội tại trong ứng dụng

@OrdinalNumber tinyint

AS

DELETE FROM PurchaseInvoiceDetails

WHERE InvoiceNo = @InvoiceNo

AND ProductId = @Productid

AND OrdinalNumber = @OrdinalNumber

í dụ UD-10-6: Khải báo thêm và cập nhật

CREATE PROC udsInsUpdPurchaseInvoiceDetails

INSERT INTO PurchaseInvoiceDetails

VALUES (@OrdinalNumber, @InvoiceNo,

@ProductId, @Quantity, @Price,

WHERE InvoiceNo = @InvoiceNo

AND ProductId = @ProductId

AND OrdinalNumber = @OrdinalNumber

GO

Trang 19

kê theo thời gian, nhà cung cấp hay sản phẩm

Chẳng hạn, bạn khai báo thủ tục nội tại cho phép liệt kê doanh thu mua hàng theo ngày như ví dụ UD-11

: Báo cáo chỉ phí mua hang theo n

CREATE PROC udsPurchaseByDate

AS

SELECT Convert (char (10) ,DueDate, 103) AS SalesDate,

SUM (Quantity*Price* (1+VATRate/100) -DiscounE) As

PurchaseAmount

FROM PurchaseInvoices S, PurchaseInvoiceDetails D

WHERE S.InvoiceNo = D InvoiceNo

GROUP BY Convert (char (10) ,DueDate, 103)

GO

Bạn có thể gọi thủ tục trên và kết quả là danh sách chi phí mua hàng trình bày như hình UD-11

udsPurchaseByDate

Hình UD-11: Chỉ phí mua hàng theo ngày

Tương tự như trên, bạn có thể khai báo thủ tục nội tại để liệt kê chỉ

phí mua hàng theo tuân trong tháng hiện hành như ví dụ UD-11-1

Trang 20

284 Ung dụng: Sử dụng thủ tục nội tại trong ứng dụng

SUM (Quantity*Price* (1+VATRate/100) -Discount) As

PurchaseAmount

FROM PurchaseInvoices §,

PurchaseInvoiceDetails D

WHERE S.InvoiceNo = D.TnvoiceNo

GROUP BY DATEPART (ww, DueDate)

GO

Ban có thể gọi thủ tục trên và kết quả là danh sách chi phí mua hàng

theo tuần trình bày như hình UD-11-1

udsPurchaseByWeek

Hình UD-11-1: Chỉ phi mua hang theo tuân

Bạn cũng có thể khai báo thủ tục nội tại cho phép người sử dụng báo

cáo chỉ phí mua hàng theo sản phẩm như ví dụ UD-11-2

CREATE PROC uds PurchaseByProduct

@Product Id VARCHAR (10)

AS

SELECT P ProductID, ProductNameInVietnamese,

SUM (Quantity*Price* (1+VATRate/100) -Discount) As

PurchaseAmount

FROM Products P, PurchaseInvoiceDetails D

WHERE P ProductID =D ProductID

AND D ProductId = CASE @ProductId

WHEN '' THEN D Productid

ELSE @ProductId END

GROUP BY P Product ID, ProductNameInVietnamese

Ngày đăng: 11/08/2014, 00:24

HÌNH ẢNH LIÊN QUAN

Hình  UD-ð-2:  Doanh  thu  bán  hàng  theo  ngày. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-ð-2: Doanh thu bán hàng theo ngày (Trang 1)
Hình  UD-ð-8:  Doanh  thu  bán  hàng  theo  tuân. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-ð-8: Doanh thu bán hàng theo tuân (Trang 2)
Hình  UD-ð-4:  Doanh  thu  của  sản  phẩm. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-ð-4: Doanh thu của sản phẩm (Trang 3)
Hình  UD-6-1:  Thông  tin  một  nhà  cung  cấp. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-6-1: Thông tin một nhà cung cấp (Trang 5)
Hình  UD-7. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-7 (Trang 7)
Hình  UD-8-1:  Thông  tin  một  lô  hóa  đơn  mua  hàng. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-8-1: Thông tin một lô hóa đơn mua hàng (Trang 10)
Hình  UD-9:  Danh  sách  hóa  đơn  mua  hàng. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-9: Danh sách hóa đơn mua hàng (Trang 12)
Hình  UD-9-2:  Dan],  sách  nhà  cung  cấp  uà  hóa  don  mua  hang.  Ngoài  ra,  bạn  cũng  có  thể  gọi  thủ  tục  trên  với  mã  nhà  cung  cấp  là - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-9-2: Dan], sách nhà cung cấp uà hóa don mua hang. Ngoài ra, bạn cũng có thể gọi thủ tục trên với mã nhà cung cấp là (Trang 13)
Hình  UD-9-3:  Hóa  đơn  bán  hàng  của  nhà  cung  cấp. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-9-3: Hóa đơn bán hàng của nhà cung cấp (Trang 14)
Hình  UD-10-1:  Thông  tin  chỉ  tiết  của  một  hóa  đơn  mua  hàng. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-10-1: Thông tin chỉ tiết của một hóa đơn mua hàng (Trang 17)
Hình  UD-11:  Chỉ  phí  mua  hàng  theo  ngày. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-11: Chỉ phí mua hàng theo ngày (Trang 19)
Hình  UD-11-1:  Chỉ  phi  mua  hang  theo  tuân. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-11-1: Chỉ phi mua hang theo tuân (Trang 20)
Hình  UD-11-9:  Chỉ  phí  mua  hàng  lớn  nhất  của  3  sản  phẩm  tại  HCM. - SQL server 2005 – Lập trình, thủ tục và hàm part 8 docx
nh UD-11-9: Chỉ phí mua hàng lớn nhất của 3 sản phẩm tại HCM (Trang 25)

TỪ KHÓA LIÊN QUAN

w