PDA

View Full Version : giúp em cách xuất kết quả các câu truy vấn bằng thủ tục lưu trử



heenoowoon
08-01-2011, 10:11
em chào mọi người.
em vừa mới học sql ss 2k5 phần 2 được 2 tiết, em có bài tập này mong mọi người giúp đỡ.
cho CSDL Bán Hàng
1.KhachHang(MaKH,HoTenKH,DiaChi,DienThoai)
2.SanPham(MaSP,TenSP,DonViTinh,DonGia)
3.HoaDon(MaHD,MaKH,NgayTao)
4.ChiTietHD(MaHD,MaSP,SoLuong)
câu 1: Viết Stored Procedure hiển thị cách Khách hàng không có số điện thoại
câu 2: Viết Stored Procedure hiển thị thông tin (MaHD,NgàyTao,HoTenKH,TénP,SoLuong,ThanhTien) với ThanhTien=DonGia*SoLuong
anh em nào biết giúp mình với,(cách viết code truy vấn và cả cách xuát ra kết quả nữa nha,có hình ảnh càng tốt)
Thank

Đây là bài làm của em, mọi người xem rồi chỉ giúp
câu 1:


create procedure KhachHang_KhongDienThoai
as
declare @DienThoai nvarchar(15)
select @DienThoai = null
from KhachHang
select MaKH,HoTenKH,DiaChi from KhachHang
where DienThoai = @DienThoai


Kết quả : Command(s) completed successfully.

câu 2:


create procedure thanhtien
as
declare @thanhtien float
select @thanhtien = ChitietHD.SoLuong * SanPham.DonGia
from ChiTietHD,SanPham
where SanPham.MaSP=ChiTietHD.MaSP
select HoaDon.MaHD, HoaDon.NgayTao, KhachHang.HoTenKH, SanPham.TenSP, ChiTietHD.SoLuong, @thanhtien as ThanhTien
from KhachHang,SanPham,HoaDon,ChiTietHD
where KhachHang.MaKH = HoaDon.MaKH and HoaDon.MaHD = ChiTietHD.MaHD and SanPham.MaSP = ChiTietHD.MaSP


Kết quả : Command(s) completed successfully.

em không biết vậy có đúng không nữa vì thấy kết quả là thành công thôi chứ không có gì hết
Mọi người giúp mình nha......

hoangnnm
08-01-2011, 13:39
em chào mọi người.
em vừa mới học sql ss 2k5 phần 2 được 2 tiết, em có bài tập này mong mọi người giúp đỡ.
cho CSDL Bán Hàng
1.KhachHang(MaKH,HoTenKH,DiaChi,DienThoai)
2.SanPham(MaSP,TenSP,DonViTinh,DonGia)
3.HoaDon(MaHD,MaKH,NgayTao)
4.ChiTietHD(MaHD,MaSP,SoLuong)
câu 1: Viết Stored Procedure hiển thị cách Khách hàng không có số điện thoại
câu 2: Viết Stored Procedure hiển thị thông tin (MaHD,NgàyTao,HoTenKH,TénP,SoLuong,ThanhTien) với ThanhTien=DonGia*SoLuong
anh em nào biết giúp mình với,(cách viết code truy vấn và cả cách xuát ra kết quả nữa nha,có hình ảnh càng tốt)
Thank

Đây là bài làm của em, mọi người xem rồi chỉ giúp
câu 1:


create procedure KhachHang_KhongDienThoai
as
declare @DienThoai nvarchar(15)
select @DienThoai = null
from KhachHang
select MaKH,HoTenKH,DiaChi from KhachHang
where DienThoai = @DienThoai


Kết quả : Command(s) completed successfully.

câu 2:


create procedure thanhtien
as
declare @thanhtien float
select @thanhtien = ChitietHD.SoLuong * SanPham.DonGia
from ChiTietHD,SanPham
where SanPham.MaSP=ChiTietHD.MaSP
select HoaDon.MaHD, HoaDon.NgayTao, KhachHang.HoTenKH, SanPham.TenSP, ChiTietHD.SoLuong, @thanhtien as ThanhTien
from KhachHang,SanPham,HoaDon,ChiTietHD
where KhachHang.MaKH = HoaDon.MaKH and HoaDon.MaHD = ChiTietHD.MaHD and SanPham.MaSP = ChiTietHD.MaSP


Kết quả : Command(s) completed successfully.

em không biết vậy có đúng không nữa vì thấy kết quả là thành công thôi chứ không có gì hết
Mọi người giúp mình nha......

Để thực thi 1 store procedure thì bạn dùng lệnh exectue .
Ví dụ :


Execute KhachHang_KhongDienThoai


Câu 1 bạn nên viết thế này :


create procedure KhachHang_KhongDienThoai
as
select MaKH,HoTenKH,DiaChi from KhachHang
where isnull(DienThoai, '' ) = ''

Còn câu 2 của bạn thấy rối rắm nhức đầu quá nên bạn cứ exec xem có sai gì không rồi hỏi tiếp nha , hehe .

heenoowoon
09-01-2011, 23:38
Thank bạn nhiều lắm, mình chỉ hỏi cách xuất dữ liệu ra thôi, hì giờ mình biết rồi cảm ơn bạn nhé, àh câu 2 mình làm đúng rồi nhưng không biết có ai có cách khác không nữa. nếu có chỉ cho mình học hỏi với, vì mình thấy cách này hơi dài hì
Dù sao cũng thank anh hoangnnm vài cái nữa đó. I Love hoangnnm

megaownage
11-01-2011, 09:42
Điều kiện chi tiết hết sức đơn giản. Chỉ cần phân tích 1 chút.

(Lười viết nguyên SP lắm. Chỉ code đơn giản thôi, code của bạn rườm rà quá)

câu 1: (Viết Stored Procedure) hiển thị các Khách hàng không có số điện thoại

Câu này chỉ liệt kê khách hàng, cộng thêm điều kiện có số điện thoại là null

Select MaKH,HoTenKH,DiaChi From KhachHang Where DienThoai Is Null

câu 2: (Viết Stored Procedure) hiển thị thông tin (MaHD,NgàyTao,HoTenKH,TenSP,SoLuong,ThanhTien) với ThanhTien=DonGia*SoLuong

câu này liệt kê các chi tiết hợp đồng, cần thêm chi tiết ở bảng nào thì join vào bảng ấy
(cuối cùng xếp lại theo thứ tự)

Select CT.MaHD, HD.NgayTao, KH.HoTenKH, SP.TenSP, CT.SoLuong, CT.SoLuong * SP.DonGia As ThanhTien
from ChiTietHD CT inner join SanPham SP on CT.MaSP = SP.MaSP
inner join HoaDon HD on CT.MaHD = HD.MaHD
inner join KhachHang KH on HD.MaKH = KH.MaKH
order by CT.MaHD, SP.TenSP