Phòng CSKH muốn biết khách hàng gắn bó với công ty bao lâu. Lấy ngày hiện tại cố định là '2026-09-25' (không dùng GETDATE()/NOW()), với các khách hàng có status = 'ACTIVE' và created_date không sau ngày '2026-09-25', hãy xuất:
so_ngay — số ngày từ created_date đến '2026-09-25';so_nam — số năm tròn đã tham gia, quy ước 1 năm = 365 ngày, lấy phần nguyên (chia cho 365.0 rồi FLOOR, ép về số nguyên).Sắp xếp theo so_ngay giảm dần, đồng số ngày thì theo customer_id tăng dần.
Lưu ý cú pháp: T-SQL DATEDIFF(day, ngay_dau, ngay_cuoi); MySQL DATEDIFF(ngay_cuoi, ngay_dau) (thứ tự tham số ngược nhau, MySQL chỉ có 2 tham số).
Bảng Customers(customer_id, status, created_date).
customer_id, created_date, so_ngay, so_nam (TAB); sắp xếp theo so_ngay giảm dần, customer_id.
Ví dụ:
Đầu vào:
Đầu ra:
39 2018-06-18 3021 8
20 2019-07-01 2643 7
15 2019-10-01 2551 6
18 2020-01-06 2454 6
35 2020-01-15 2445 6
33 2020-04-26 2343 6
30 2020-05-10 2329 6
24 2020-06-28 2280 6
11 2020-08-21 2226 6
31 2020-11-29 2126 5
14 2021-02-21 2042 5
32 2021-04-17 1987 5
22 2021-05-30 1944 5
1 2021-06-29 1914 5
34 2021-08-28 1854 5
7 2021-09-22 1829 5
16 2021-10-30 1791 4
27 2021-11-24 1766 4
13 2021-12-23 1737 4
3 2022-02-07 1691 4
6 2022-08-12 1505 4
38 2022-08-15 1502 4
37 2022-09-03 1483 4
10 2022-12-02 1393 3
40 2023-01-06 1358 3
21 2023-01-29 1335 3
2 2023-09-11 1110 3
8 2024-09-27 728 1
29 2024-11-29 665 1
28 2025-01-02 631 1
25 2025-07-05 447 1
Giải thích:
Đang tải editor...