37 lines
1.1 KiB
SQL
Executable File
37 lines
1.1 KiB
SQL
Executable File
CREATE TABLE IF NOT EXISTS employees (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
name TEXT NOT NULL,
|
|
department TEXT,
|
|
supervisor TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS violations (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
employee_id INTEGER NOT NULL REFERENCES employees(id),
|
|
violation_type TEXT NOT NULL,
|
|
violation_name TEXT NOT NULL,
|
|
category TEXT NOT NULL,
|
|
points INTEGER NOT NULL,
|
|
incident_date DATE NOT NULL,
|
|
incident_time TEXT,
|
|
location TEXT,
|
|
details TEXT,
|
|
submitted_by TEXT,
|
|
witness_name TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE VIEW IF NOT EXISTS active_cpas_scores AS
|
|
SELECT
|
|
e.id AS employee_id,
|
|
e.name AS employee_name,
|
|
e.department,
|
|
COALESCE(SUM(v.points), 0) AS active_points,
|
|
COUNT(v.id) AS violation_count
|
|
FROM employees e
|
|
LEFT JOIN violations v
|
|
ON v.employee_id = e.id
|
|
AND v.incident_date >= DATE('now', '-90 days')
|
|
GROUP BY e.id;
|