Truy vấn lồng trong SQL Server

Bài 01 SQL lồng nhau: Giả sử ta có 2 table để lưu lại hoạt động bán hàng

* Hóa đơn:
   HoaDon:ID_HoaDon,So,TenKhachHang,DiaChi
* Hóa đơn chi tiết
 HoaDonChiTiet: ID,ID_HoaDon,MaHang,SL,DG,TT

 Ví dụ 1: lồng sql

- Viết câu lệnh sql truy vấn nhật ký bán hàng : Số hóa đơn,Tên khách hàng, Địa chỉ, Số tiền

Select
   So,TenKhachHang,DiaChi
   , (  Select Sum(TT) From HoaDonChiTiet Where ID_HoaDon=HoaDon.ID_HoaDon  ) as SoTien
From HoaDon

Câu lệnh sql màu xanh là 1 câu lệnh lồng sql

 

 Ví dụ 2: lồng sql

- Viết câu lệnh sql truy vấn nhật ký bán hàng : Số hóa đơn,Tên khách hàng, Địa chỉ, Tổng sổ mặc hàng trong hóa đơn

Select
   So,TenKhachHang,DiaChi
   , (  Select Count(ID) From HoaDonChiTiet Where ID_HoaDon=HoaDon.ID_HoaDon  ) as SoMacHang
From HoaDon

 

Bài 02 SQL lồng nhau: Giả sử ta có 2 table để lưu quản lý nhân sự trong công ty

* Nhân viên:
   NhanVien:Ma,Ten,MaPB
*  Phòng bàn
  PhongBan:MaPB,TenPB

Yêu cầu: Viết câu sql hiển thị thông tin Mã nhân viên, Tên, Tên phòng ban

 Có 2 cách để ta viết
  * Lồng sql

    Select
          Ma
          ,Ten
          ,
          (
             Select TenPB From PhongBan Where MaPB=NhanVien.MaPB
          ) as TenPhongBan
   From NhanVien
            

 

  * Sử dụng inner join sql    Select
          Ma
          ,Ten
          ,TenPB
   From NhanVien Inner Join PhongBan
         On NhanVien.MaPB = PhongBan.MaPB