2. Ràng buô ̣c trên nhiều quan
4.4 Yêu cầu từ các nghiê ̣p v ụ nhâ ̣p hàng 35.
b.4.6 Lâ ̣p bảng thống kê các mă ̣t hàng được nhâ ̣p bởi công ty trong năm 2008. Danh sách gốm có mã hàng, tên hàng, số lượng, số tiền bỏ ra để nhâ ̣p mă ̣t hàng đó.
SELECT HH.MaHang, HH.TenHang, SUM(CTPNH.SoLuong) AS SoLuongNhap, SUM(CTPNH.SoLuong * CTPNH.DonGia) AS TongGiaTri
FROM HangHoa AS HH INNER JOIN
ChiTietPhieuNhapHang AS CTPNH ON HH.MaHang = CTPNH.MaHang INNER JOIN PhieuNhapHang AS PNH ON CTPNH.MaPN = PNH.MaPN
WHERE (YEAR(PNH.NgayLap) = '2008') GROUP BY HH.MaHang, HH.TenHang
b.4.7 Lâ ̣p danh sách mă ̣t hàng được công ty nhâ ̣p nhiều nhất trong năm 2008. Danh sách gồm có mã hàng, tên hàng, số lượng nhâ ̣p.
SELECT MaHang, TenHang, SoLuongNhap
FROM (SELECT MaHang, TenHang, SoLuongNhap
FROM (SELECT HH.MaHang, HH.TenHang, SUM(CTPNH.SoLuong) AS SoLuongNhap
FROM HangHoa AS HH INNER JOIN
ChiTietPhieuNhapHang AS CTPNH ON HH.MaHang = CTPNH.MaHang INNER JOIN
PhieuNhapHang AS PNH ON CTPNH.MaPN = PNH.MaPN WHERE (YEAR(PNH.NgayLap) = '2008')
GROUP BY HH.MaHang, HH.TenHang)) WHERE (SoLuongNhap >= ALL
(SELECT SoLuongNhap
FROM (SELECT MaHang, TenHang, SoLuongNhap FROM (SELECT HH.MaHang, HH.TenHang,
SUM(CTPNH.SoLuong) AS SoLuongNhap FROM HangHoa AS HH INNER JOIN
ChiTietPhieuNhapHang AS CTPNH ON HH.MaHang = CTPNH.MaHang INNER JOIN PhieuNhapHang AS PNH ON
CTPNH.MaPN = PNH.MaPN
WHERE (YEAR(PNH.NgayLap) = '2008') GROUP BY HH.MaHang, HH.TenHang))))
b.4.8 Tìm nhà cung cấp mà công ty bỏ nhiều tiến ra nhất để nhâ ̣p hàng trong năm 2008.
SELECT MaNCC, Ten, TongGiaTriNhap
FROM (SELECT NCC.MaNCC, NCC.Ten, SUM(PNH.TongGiaTri) AS TongGiaTriNhap
FROM NhaCungCap AS NCC INNER JOIN
PhieuNhapHang AS PNH ON NCC.MaNCC = PNH.MaNCC WHERE (YEAR(PNH.NgayLap) = '2008')
GROUP BY NCC.MaNCC, NCC.Ten) WHERE (TongGiaTriNhap >= ALL
(SELECT TongGiaTriNhap
AS TongGiaTriNhap
FROM NhaCungCap AS NCC INNER JOIN
PhieuNhapHang AS PNH ON NCC.MaNCC = PNH.MaNCC WHERE (YEAR(PNH.NgayLap) = '2008')
GROUP BY NCC.MaNCC, NCC.Ten)))
b.4.9 Lâ ̣p bảng thống kê tình hình nhâ ̣p hàng của công ty trong từng tháng năm 2008. Danh sách gồm tháng, số tiền chi cho nhập hàng.
SELECT Thang, SUM(TongGiaTri) AS TongGiaTriNhap FROM (SELECT TongGiaTri, MONTH(NgayLap) AS Thang FROM dbo.PhieuNhapHang AS PNH
WHERE (YEAR(NgayLap) = '2008')) GROUP BY Thang
b.4.10 tính tháng mà công ty có giá tri ̣ nhâ ̣p lớn nhất trong năm 2008.
SELECT Thang, TongGiaTriNhap
FROM (SELECT Thang, SUM(TongGiaTri) AS TongGiaTriNhap
FROM (SELECT TongGiaTri, MONTH(NgayLap) AS Thang FROM PhieuNhapHang AS PNH
WHERE (YEAR(NgayLap) = '2008')) GROUP BY Thang)
WHERE (TongGiaTriNhap >= ALL (SELECT TongGiaTriNhap
FROM (SELECT Thang, SUM(TongGiaTri) AS TongGiaTriNhap FROM (SELECT TongGiaTri, MONTH(NgayLap) AS Thang FROM PhieuNhapHang AS PNH
WHERE (YEAR(NgayLap) = '2008')) GROUP BY Thang)))
b.4.11 Lâ ̣p bảng thống kê tình hình giao di ̣ch của công ty với từng nhà cung cấp trong năm 2008. Danh sách gồm có mã nhà cung cấp, tên
SELECT NCC.MaNCC, NCC.Ten, SUM(PNH.TongGiaTri) AS TongGiaTriNhap FROM NhaCungCap AS NCC INNER JOIN
PhieuNhapHang AS PNH ON NCC.MaNCC = PNH.MaNCC WHERE (YEAR(PNH.NgayLap) = '2008')
GROUP BY NCC.MaNCC, NCC.Ten
b.4.12 Lập danh sách top 5 mặt hàng công ty nhập nhiều nhất 2008. Danh danh sách gồm có mã hàng, tên hàng, tổng giá trị nhập.
SELECT TOP (5) HH.MaHang, HH.TenHang, SUM(CTPNH.DonGia * CTPNH.DonGia) AS TongGiaTriNhap
FROM HangHoa AS HH INNER JOIN
ChiTietPhieuNhapHang AS CTPNH ON HH.MaHang = CTPNH.MaHang INNER JOIN PhieuNhapHang AS PNH ON CTPNH.MaPN = PNH.MaPN GROUP BY HH.MaHang, HH.TenHang
ORDER BY TongGiaTriNhap DESC
b.4.13 Lập danh sách những phiếu nhập đã thanh toán. Danh sách gồm mã phiếu nhập, mã nhà cung cấp, ngày lập, tổng giá trị.
SELECT MaPN, MaNCC, NgayLap, TongGiaTri
FROM (SELECT PNH.MaPN, PNH.MaNCC, PNH.NgayLap, PNH.TongGiaTri, ISNULL(CNN.SoTien, 0) AS SoTienNo
FROM PhieuNhapHang AS PNH LEFT OUTER JOIN
CongNoNhap AS CNN ON PNH.MaPN = CNN.MaPN) WHERE (SoTienNo = '0')