Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tính lương tháng từ lương năm trong MySQL (chia cột cho 12)

Vấn đề: Tạo cột tính toán (computed column) – lương tháng = lương năm / 12

Bảng nhân viên có cột EmployeeSalary (lương năm). Cần hiển thị thêm cột MonthlySalary.

Giải pháp: Biểu thức toán học trong SELECT

Dùng phép chia / trực tiếp trong danh sách cột SELECT.

1. Tạo bảng và dữ liệu

CREATE TABLE DemoTable (
    EmployeeId INT,
    EmployeeName VARCHAR(20),
    EmployeeSalary INT
);

INSERT INTO DemoTable VALUES
(1, 'Chris', 240000),
(2, 'Bob',   120000),
(3, 'David', 180000),
(4, 'Mike',  650000);

2. Truy vấn tính lương tháng

SELECT EmployeeName, EmployeeSalary / 12 AS MonthlySalary 
FROM DemoTable;

3. Kết quả

+--------------+---------------+
| EmployeeName | MonthlySalary |
+--------------+---------------+
| Chris        |     20000.0000|
| Bob          |     10000.0000|
| David        |     15000.0000|
| Mike         |     54166.6667|
+--------------+---------------+

Định dạng số (Format)

  • Làm tròn 2 chữ số: ROUND(EmployeeSalary / 12, 2).
  • Định dạng tiền tệ: FORMAT(EmployeeSalary / 12, 2) → '20,000.00' (chuỗi).
  • Ép kiểu INT: CAST(EmployeeSalary / 12 AS UNSIGNED) → 20000 (cắt phần thập phân).

Lưu ý

  • Phép chia / trong MySQL trả về kiểu DECIMAL (số thực).
  • Nếu muốn lưu cột này, dùng GENERATED COLUMN (MySQL 5.7+):
    ALTER TABLE DemoTable 
    ADD MonthlySalary DECIMAL(10,2) GENERATED ALWAYS AS (EmployeeSalary / 12) STORED;
  • Chia cho 0 → trả về NULL (không báo lỗi).