Truy vấn lồng trong SQL Server

Sử dụng SQL server

5.0 (10 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 3 năm trước 115.905 lượt xem 59 bình luận
Tác giả/Dịch giả: Kteam
Học nhanh

Danh sách bài học

Truy vấn lồng trong SQL Server

Dẫn nhập

Với hệ thống nhỏ, chúng ta hoàn toàn có thể lưu trữ dữ liệu bằng file để khi tắt ứng dụng dữ liệu chúng ta vẫn còn được lưu giữ. Nhưng với hệ thống lớn, truy vấn tìm kiếm, thao tác với dữ liệu trên file không còn dễ dàng và hiệu quả nữa. Và SQL ra đời để giải quyết vấn đề đó.

Chúng ta cùng nhau tìm hiểu về SQL Server trong serial này nhé!

Nội dung

Nội dung hiện tại mang tính tạm thời đáp ứng nhu cầu xem & cập nhập kiến thức cơ bản thông qua Video hướng dẫn.

Nội dung chi tiết của khóa học Hướng dẫn sử dụng SQL Server đang trong quá trình xây dựng một cách kỹ lưỡng nhằm đảm bảo chất lượng và sẽ được cập nhập liên tục trong thời gian tới.

Các bạn nhớ theo dõi và luôn ủng hộ Kteam nhé!

Query.sql

SQLQuery2.sql


Bài tập

1. Xuất ra thông tin giáo viên mà có hơn 2 người thân

2. Xuất ra danh sách các giáo viên lớn tuổi hơn ít nhất 5 giáo viên trong trường

  • Lấy ra danh sách (MaGV, Tuoi) as GVT
  • Sắp xếp giảm dần -> order by desc
  • Lấy ra danh sách GVT2 với số lượng phần tử = 5
  • Kiểm tra mã GV tồn tại trong GVT2 là đúng

Kết luận

Bài sau chúng ta sẽ cùng tìm hiểu về Group By trong SQL Server.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Và đừng quên “Luyện tập – Thử Thách – Không ngại khó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Truy vấn lồng trong SQL Server dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!

Project

Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Khóa học

Sử dụng SQL server

Với hệ thống nhỏ, chúng ta hoàn toàn có thể lưu trữ dữ liệu bằng file để khi tắt ứng dụng dữ liệu chúng ta vẫn còn được lưu giữ. Nhưng với hệ thống lớn, truy vấn tìm kiếm, thao tác với dữ liệu trên file không còn dễ dàng và hiệu quả nữa. Và SQL ra đời để giải quyết vấn đề đó.

Chúng ta cùng nhau tìm hiểu về SQL và SQL Server thông qua serial HƯỚNG DẪN SỬ DỤNG SQL SERVER nhé!

Đánh giá

5.0
10 đánh giá
Đánh giá
5
10
4
3
2
1
huonghuong13 đã đánh giá 3 năm trước

phungduongd đã đánh giá 3 năm trước

NguyenMinhQuan20120554 đã đánh giá 3 năm trước

Thien Mai đã đánh giá 3 năm trước

tuyệt vời

Nguyễn Văn Thịnh đã đánh giá 3 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
nhxau2001 đã bình luận 4 tháng trước

CÂU 1:
select * from giaovien as gv, nguoithan as ngt
where (gv.MAGV = ngt.MAGV) 
and ( select count(*) FROM nguoithan where nguoithan.MAGV = gv.MAGV) >=2;

0796465684 đã bình luận 9 tháng trước

--2. Xuất ra danh sách các giáo viên lớn tuổi hơn ít nhất 5 giáo viên trong trường
SELECT MAGV, HOTEN,DATEDIFF(YEAR, T1.NGSINH, GETDATE()) AS TUOI FROM GIAOVIEN T1
WHERE (
    SELECT COUNT(*) FROM GIAOVIEN T2
    WHERE DATEDIFF(YEAR, T2.NGSINH, GETDATE()) < DATEDIFF(YEAR, T1.NGSINH, GETDATE())
) >= 5
;

-- 2. Xuất ra danh sách các giáo viên lớn tuổi hơn 50% các giáo viên trong trường
SELECT MAGV, HOTEN, DATEDIFF(YEAR, GV1.NGSINH, GETDATE()) AS TUOI FROM GIAOVIEN GV1
WHERE(
    DATEDIFF(YEAR, GV1.NGSINH, GETDATE())>
    (SELECT SUM(DATEDIFF(YEAR, NGSINH, GETDATE())) FROM GIAOVIEN)/(SELECT COUNT(*) FROM GIAOVIEN)
)

Nahida đã bình luận khoảng 1 năm trước

-- Bài tập
-- 1. Xuất ra thông tin giáo viên mà có hơn 2 người thân
SELECT * FROM dbo.GIAOVIEN AS GV
WHERE 2 <= (SELECT COUNT(*) FROM dbo.NGUOITHAN WHERE MAGV = GV.MAGV)
-- 2. Xuất ra danh sách các giáo viên lớn tuổi hơn 50% các giáo viên trong trường
SELECT * FROM dbo.GIAOVIEN GV
JOIN
(    
    SELECT TOP (SELECT COUNT(*)/2 FROM dbo.GIAOVIEN) MAGV, (YEAR(GETDATE()) - YEAR(NGSINH)) TUOI 
    FROM dbo.GIAOVIEN
    ORDER BY TUOI DESC
) AS T ON GV.MAGV = T.MAGV

Test Demo đã bình luận khoảng 1 năm trước

SELECT G1.MAGV, YEAR(GETDATE()) - YEAR(G1.NGSINH) AS 'Age'
    FROM dbo.GIAOVIEN AS G1
    WHERE G1.MAGV NOT IN (
        SELECT TOP(5) GV2.MAGV
        FROM dbo.GIAOVIEN AS GV2
        ORDER BY YEAR(GETDATE()) - YEAR(GV2.NGSINH) DESC
    )
        ORDER BY YEAR(GETDATE()) - YEAR(G1.NGSINH) DESC

luannt.2809 đã bình luận 2 năm trước

em nộp bài 2 nha:

select MAGV, YEAR(GETDATE()) - YEAR(NGSINH) as tuoi from GIAOVIEN as GVT1
where GVT1.MAGV in 
(
    select top(5) MAGV from GIAOVIEN as GVT2
)
order by tuoi desc

Không có video.