-
Notifications
You must be signed in to change notification settings - Fork 0
/
Script-Informe-Datos.sql
133 lines (119 loc) · 2.67 KB
/
Script-Informe-Datos.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
-- Informe de Clientes
SELECT
C.Nombre,
SUM(S.Precio) AS 'Total Gastado'
FROM
CLIENTES C
LEFT JOIN
VEHICULOS V ON C.id_clientes = V.Cliente_id
LEFT JOIN
HISTORIALSERVICIOS HS ON V.id_vehiculos = HS.Vehiculos_id
LEFT JOIN
SERVICIOS S ON HS.Servicios_id = S.id_servicios
GROUP BY
C.Nombre
ORDER BY
SUM(S.Precio) DESC
LIMIT
5;
-- Informe de Vehículos
SELECT
'Vehículo con Mayor Kilometraje' AS 'Estado del Kilometraje de los Vehículos',
Marca,
Modelo,
CONCAT(Kilometraje, ' km') AS Kilometraje
FROM
VEHICULOS
WHERE Kilometraje IS NOT NULL
ORDER BY
COALESCE(Kilometraje, 999999999999) DESC
LIMIT
3;
SELECT
'Vehículo con Menor Kilometraje' AS 'Estado del Kilometraje de los Vehículos',
Marca,
Modelo,
CONCAT(IFNULL(Kilometraje, '[No disponible]'), ' km') AS Kilometraje
FROM
VEHICULOS
WHERE Kilometraje IS NOT NULL
ORDER BY
COALESCE(Kilometraje, 99) ASC
LIMIT
3;
-- Informe de Servicios
SELECT
'Total de Servicios Ofrecidos' AS 'Estadísticas de Servicios',
COUNT(*) AS 'Total de Servicios'
FROM
SERVICIOS;
SELECT
'Servicio Más Solicitado' AS 'Estadísticas de Servicios',
Descripcion AS 'Descripción',
COUNT(*) AS 'Total de Solicitudes'
FROM
SERVICIOS S
JOIN
HISTORIALSERVICIOS HS ON S.id_servicios = HS.Servicios_id
GROUP BY
Descripcion
ORDER BY
COUNT(*) DESC
LIMIT
1;
-- Informe de Empleados
SELECT
'Empleado del Mes' AS 'Rendimiento de Empleados',
Nombre AS 'Nombre',
'Número Total de Actividades' AS 'Número Total de Actividades',
COUNT(*) AS 'Número Total de Actividades'
FROM
EMPLEADOS E
LEFT JOIN
HISTORIALSERVICIOS HS ON E.id_empleados = HS.Empleados_id
LEFT JOIN
VENTAS V ON E.id_empleados = V.Empleados_id
GROUP BY
Nombre
ORDER BY
COUNT(*) DESC
LIMIT
1;
-- Informe de Inventarios y Compras
-- Inventarios Disponibles
SELECT
'Productos con Mayor Cantidad en Inventario' AS 'Inventarios Disponibles',
Nombre AS 'Producto',
SUM(CantidadDisponible) AS 'Cantidad Total'
FROM
INVENTARIO
GROUP BY
Nombre
ORDER BY
SUM(CantidadDisponible) DESC
LIMIT
3;
SELECT
'Producto con Menor Cantidad en Inventario' AS 'Inventarios Disponibles',
Nombre AS 'Producto',
SUM(CantidadDisponible) AS 'Cantidad Total'
FROM
INVENTARIO
GROUP BY
Nombre
ORDER BY
SUM(CantidadDisponible) ASC
LIMIT
3;
-- Análisis de Compras Recientes
SELECT
'Compra más Reciente' AS 'Análisis de Compras Recientes',
C.Fecha AS 'Fecha',
P.Nombre AS 'Proveedor',
C.Precio AS 'PrecioTotal'
FROM
COMPRAS C
INNER JOIN Proveedores P ON P.id_proveedores = C.Proveedores_id
ORDER BY
C.Fecha DESC
LIMIT 1;