Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: [SQL 4.2] Tính tuổi khách hàng

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 4: Kiểu dữ liệu và hàm xử lý dữ liệu — khóa SQL

    Hệ thống cần tuổi của khách hàng để phân nhóm sản phẩm. Lấy ngày hiện tại cố định là '2026-09-25'. Với các khách hàng có ngày sinh (birth_date IS NOT NULL, tức khách cá nhân), hãy tính tuoi là số tuổi tròn tại ngày '2026-09-25':

    • Tuổi = 2026 - năm sinh, trừ 1 nếu sinh nhật năm 2026 chưa tới (tính đến hết ngày 2026-09-25; sinh đúng ngày 25/09 là đã đủ tuổi).

    Sắp xếp theo tuoi giảm dần, đồng tuổi thì theo customer_id tăng dần.

    Cảnh báo: DATEDIFF(year, birth_date, '2026-09-25') của T-SQL chỉ đếm số mốc năm đi qua, không xét tháng ngày nên sai với người chưa tới sinh nhật. Hãy so sánh (tháng, ngày) của ngày sinh với (9, 25).

    • Định dạng đầu vào:

      Bảng Customers(customer_id, birth_date).

    • Định dạng đầu ra:

      customer_id, birth_date, tuoi (TAB); sắp xếp theo tuoi giảm dần, customer_id.

    Ví dụ:

    Đầu vào:

    Đầu ra:

    22	1965-01-24	61
    12	1967-07-02	59
    19	1967-05-06	59
    27	1966-11-04	59
    23	1967-11-03	58
    3	1968-10-23	57
    6	1969-07-22	57
    7	1969-07-02	57
    28	1969-08-20	57
    21	1969-10-11	56
    9	1971-04-24	55
    16	1973-06-28	53
    10	1975-05-25	51
    15	1981-06-06	45
    25	1983-06-22	43
    29	1988-09-20	38
    26	1988-12-27	37
    24	1989-10-14	36
    30	1990-02-03	36
    11	1991-09-09	35
    20	1991-12-02	34
    1	1994-07-21	32
    17	1994-05-11	32
    4	1994-10-14	31
    5	1996-02-06	30
    8	1997-05-15	29
    2	1997-12-24	28
    14	1998-06-24	28
    18	2000-05-09	26
    13	2001-09-09	25

    Giải thích:

    30 khách cá nhân có ngày sinh; khách tổ chức (birth_date NULL) bị loại.

    Chủ đề

    📊 SQLSQLSQL: Buổi 4 – Kiểu dữ liệu & hàm xử lýTất cả môn học

    Đang tải editor...