Đây là một cách làm khác cho câu 45 (46 tương tư).
Mình không dùng NOT EXIST vì cách làm CROSS JOIN khiến execution plan không tối ưu.
Xem cụ thể tại STATISTICS ON để biết thêm nhé.
À, một điều nữa. Các bạn làm SQL muốn làm dự án lớn thì đầu tư vào SQL Prompt thật kỹ nhé. Nếu không thì thật khó để debug với những CSDL hàng ngàn tables cũng như store procedures.
SET STATISTICS IO ON
DECLARE @I INT
SET @I = (SELECT COUNT(MaNV) FROM NHANVIEN)
SELECT ISNULL(MAYBAY.MaMB,' ') AS MAMAYBAY
, (@I - COUNT(CHUNGNHAN.MaNV)) AS SONHANVIEN
FROM MAYBAY
LEFT JOIN CHUNGNHAN
ON MAYBAY.MaMB = CHUNGNHAN.MaMB
GROUP BY MAYBAY.MaMB
SET STATISTICS IO OFF
--------------------------------------------STATISTICS RESULT--------------------------------------------
Table ‘NHANVIEN’. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘CHUNGNHAN’. Scan count 10, logical reads 20, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table ‘MAYBAY’. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
==> Khoảng 44 Logical Reads.