MariaDB [AutoPartes]> SELECT -> f.id_factura, -> f.id_cliente, -> f.id_empleado, -> f.fecha, -> f.total_venta, -> d.id_detalle_factura, -> d.id_producto, -> d.cantidad_producto, -> d.total_productos -> FROM factura f -> INNER JOIN ( -> SELECT -> id_detalle_factura, -> id_factura, -> id_producto, -> cantidad_producto, -> total_productos -> FROM detalle_factura -> ) AS d -> ON f.id_factura = d.id_factura -> ORDER BY f.id_factura, d.id_detalle_factura; +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | id_detalle_factura | id_producto | cantidad_producto | total_productos | +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 7 | 1 | 2 | 360000.00 | | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 8 | 4 | 1 | 150000.00 | | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 9 | 9 | 3 | 885000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | 11 | 1 | 2 | 360000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | 12 | 4 | 1 | 150000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | 13 | 3 | 1 | 340000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | 14 | 10 | 2 | 190000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | 15 | 2 | 1 | 380000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | 16 | 7 | 1 | 400000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | 17 | 6 | 1 | 530000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | 18 | 8 | 1 | 480000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | 19 | 9 | 1 | 295000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | 20 | 10 | 3 | 285000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | 21 | 11 | 1 | 185000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | 22 | 5 | 1 | 1100000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | 23 | 2 | 2 | 760000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | 24 | 4 | 2 | 300000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | 25 | 3 | 2 | 680000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | 26 | 6 | 1 | 530000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | 27 | 8 | 1 | 480000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | 28 | 1 | 3 | 540000.00 | +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ 21 rows in set (0,001 sec) MariaDB [AutoPartes]> CREATE TABLE facturas_finales AS -> SELECT -> f.id_factura, -> f.id_cliente, -> f.id_empleado, -> f.fecha, -> f.total_venta, -> d.id_detalle_factura, -> d.id_producto, -> d.cantidad_producto, -> d.total_productos -> FROM factura f -> INNER JOIN detalle_factura d -> ON f.id_factura = d.id_factura; Query OK, 21 rows affected (0,016 sec) Records: 21 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> select*facturas_finales; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'facturas_finales' at line 1 MariaDB [AutoPartes]> select*from facturas_finales; +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | id_detalle_factura | id_producto | cantidad_producto | total_productos | +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 7 | 1 | 2 | 360000.00 | | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 8 | 4 | 1 | 150000.00 | | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 9 | 9 | 3 | 885000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | 11 | 1 | 2 | 360000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | 12 | 4 | 1 | 150000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | 13 | 3 | 1 | 340000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | 14 | 10 | 2 | 190000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | 15 | 2 | 1 | 380000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | 16 | 7 | 1 | 400000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | 17 | 6 | 1 | 530000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | 18 | 8 | 1 | 480000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | 19 | 9 | 1 | 295000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | 20 | 10 | 3 | 285000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | 21 | 11 | 1 | 185000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | 22 | 5 | 1 | 1100000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | 23 | 2 | 2 | 760000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | 24 | 4 | 2 | 300000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | 25 | 3 | 2 | 680000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | 26 | 6 | 1 | 530000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | 27 | 8 | 1 | 480000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | 28 | 1 | 3 | 540000.00 | +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ 21 rows in set (0,001 sec) MariaDB [AutoPartes]> CREATE OR REPLACE VIEW facturas_finales AS -> SELECT -> f.id_factura, -> f.id_cliente, -> f.id_empleado, -> f.fecha, -> f.total_venta, -> d.id_detalle_factura, -> d.id_producto, -> d.cantidad_producto, -> d.total_productos -> FROM factura f -> INNER JOIN detalle_factura d -> ON f.id_factura = d.id_factura; ERROR 1347 (HY000): 'AutoPartes.facturas_finales' is not of type 'VIEW' MariaDB [AutoPartes]> DROP TABLE facturas_finales; Query OK, 0 rows affected (0,011 sec) MariaDB [AutoPartes]> CREATE OR REPLACE VIEW facturas_finales AS -> SELECT -> f.id_factura, -> f.id_cliente, -> f.id_empleado, -> f.fecha, -> f.total_venta, -> d.id_detalle_factura, -> d.id_producto, -> d.cantidad_producto, -> d.total_productos -> FROM factura f -> INNER JOIN detalle_factura d -> ON f.id_factura = d.id_factura; Query OK, 0 rows affected (0,003 sec) MariaDB [AutoPartes]> select*from facturas_finales; +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | id_detalle_factura | id_producto | cantidad_producto | total_productos | +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 7 | 1 | 2 | 360000.00 | | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 8 | 4 | 1 | 150000.00 | | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | 9 | 9 | 3 | 885000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | 11 | 1 | 2 | 360000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | 12 | 4 | 1 | 150000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | 13 | 3 | 1 | 340000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | 14 | 10 | 2 | 190000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | 15 | 2 | 1 | 380000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | 16 | 7 | 1 | 400000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | 17 | 6 | 1 | 530000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | 18 | 8 | 1 | 480000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | 19 | 9 | 1 | 295000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | 20 | 10 | 3 | 285000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | 21 | 11 | 1 | 185000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | 22 | 5 | 1 | 1100000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | 23 | 2 | 2 | 760000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | 24 | 4 | 2 | 300000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | 25 | 3 | 2 | 680000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | 26 | 6 | 1 | 530000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | 27 | 8 | 1 | 480000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | 28 | 1 | 3 | 540000.00 | +------------+------------+-------------+------------+-------------+--------------------+-------------+-------------------+-----------------+ 21 rows in set (0,001 sec) MariaDB [AutoPartes]> describe cliente; +-------------------+-------------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+-------------------------------------+------+-----+---------+-------+ | documento_cliente | int(11) | NO | PRI | NULL | | | nombre1 | varchar(20) | NO | | NULL | | | nombre2 | varchar(20) | YES | | NULL | | | apellido1 | varchar(20) | NO | | NULL | | | apellido2 | varchar(20) | YES | | NULL | | | direccion | varchar(50) | NO | | NULL | | | correo | varchar(50) | NO | | NULL | | | telefono | varchar(15) | NO | | NULL | | | genero | enum('Masculino','Femenino','Otro') | NO | | NULL | | +-------------------+-------------------------------------+------+-----+---------+-------+ 9 rows in set (0,001 sec) MariaDB [AutoPartes]> CREATE OR REPLACE VIEW facturas_hombres AS -> SELECT -> f.id_factura, -> f.id_cliente, -> c.nombre1 AS nombre_cliente, -> c.apellido1 AS apellido_cliente, -> c.genero, -> f.id_empleado, -> f.fecha, -> f.total_venta -> FROM factura f -> INNER JOIN cliente c ON f.id_cliente = c.documento_cliente -> WHERE c.genero = 'Masculino'; Query OK, 0 rows affected (0,003 sec) MariaDB [AutoPartes]> select*from facturas_hombres; +------------+------------+----------------+------------------+-----------+-------------+------------+-------------+ | id_factura | id_cliente | nombre_cliente | apellido_cliente | genero | id_empleado | fecha | total_venta | +------------+------------+----------------+------------------+-----------+-------------+------------+-------------+ | 1 | 1001 | Carlos | Gómez | Masculino | 2003 | 2025-11-08 | 1395000.00 | | 12 | 1003 | Andrés | Ramírez | Masculino | 2004 | 2025-11-02 | 530000.00 | | 14 | 1005 | Julián | Martínez | Masculino | 2002 | 2025-11-04 | 1010000.00 | | 16 | 1007 | Diego | Hernández | Masculino | 2006 | 2025-11-06 | 1285000.00 | | 18 | 1009 | Samuel | López | Masculino | 2008 | 2025-11-08 | 1210000.00 | +------------+------------+----------------+------------------+-----------+-------------+------------+-------------+ 5 rows in set (0,001 sec) MariaDB [AutoPartes]> CREATE OR REPLACE VIEW facturas_mujeres AS -> SELECT -> f.id_factura, -> f.id_cliente, -> c.nombre1 AS nombre_cliente, -> c.apellido1 AS apellido_cliente, -> c.genero, -> f.id_empleado, -> f.fecha, -> f.total_venta -> FROM factura f -> INNER JOIN cliente c ON f.id_cliente = c.documento_cliente -> WHERE c.genero = 'Femenino'; Query OK, 0 rows affected (0,009 sec) MariaDB [AutoPartes]> SELECT * FROM facturas_mujeres; +------------+------------+----------------+------------------+----------+-------------+------------+-------------+ | id_factura | id_cliente | nombre_cliente | apellido_cliente | genero | id_empleado | fecha | total_venta | +------------+------------+----------------+------------------+----------+-------------+------------+-------------+ | 11 | 1002 | Laura | Rodríguez | Femenino | 2003 | 2025-11-01 | 510000.00 | | 13 | 1004 | Mariana | Torres | Femenino | 2001 | 2025-11-03 | 780000.00 | | 15 | 1006 | Sofía | Morales | Femenino | 2005 | 2025-11-05 | 580000.00 | | 17 | 1008 | Valentina | Suárez | Femenino | 2007 | 2025-11-07 | 1060000.00 | | 19 | 1010 | Camila | Cárdenas | Femenino | 2009 | 2025-11-09 | 1020000.00 | +------------+------------+----------------+------------------+----------+-------------+------------+-------------+ 5 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from productos; +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ | id_producto | id_categoria | precio | valor_venta | nombre_producto | descripcion | +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ | 1 | 1 | 150000.00 | 180000.00 | Filtro de aceite Bosch | Filtro de aceite compatible con motores de gasolina y diésel, mejora la lubricación del motor. | | 2 | 1 | 320000.00 | 380000.00 | Bujías NGK Iridium | Juego de 4 bujías de iridio para alto rendimiento y durabilidad. | | 3 | 2 | 280000.00 | 340000.00 | Amortiguador trasero Monroe | Amortiguador hidráulico para vehículos de gama media, mejora la estabilidad y confort. | | 4 | 3 | 120000.00 | 150000.00 | Pastillas de freno Brembo | Pastillas de freno de cerámica para autos compactos, alta durabilidad y frenado eficiente. | | 5 | 4 | 950000.00 | 1100000.00 | Embrague LUK completo | Kit de embrague con prensa, disco y balinera, ideal para transmisión manual. | | 6 | 5 | 480000.00 | 530000.00 | Alternador Bosch 12V 90A | Alternador de alta eficiencia para vehículos de gasolina, con garantía de 1 año. | | 7 | 6 | 350000.00 | 400000.00 | Espejo retrovisor derecho | Espejo lateral con ajuste manual, carcasa negra resistente a impactos. | | 8 | 7 | 420000.00 | 480000.00 | Radiador de aluminio | Radiador de refrigeración de alto rendimiento para vehículos de 4 cilindros. | | 9 | 8 | 250000.00 | 295000.00 | Silenciador universal | Silenciador trasero de acero inoxidable con baja restricción de flujo. | | 10 | 9 | 80000.00 | 95000.00 | Aceite de motor Castrol 10W40 | Aceite semisintético de alta protección para motores a gasolina. | | 11 | 10 | 150000.00 | 185000.00 | Juego de llaves combinadas Truper | Set de 12 llaves de acero al cromo vanadio, ideal para talleres mecánicos. | +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ 11 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from pagos; +------------+----------------+------+ | id_factura | id_metodo_pago | pago | +------------+----------------+------+ | 1 | 1 | 1 | +------------+----------------+------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> select*from facturas; ERROR 1146 (42S02): Table 'AutoPartes.facturas' doesn't exist MariaDB [AutoPartes]> show tables; +----------------------+ | Tables_in_AutoPartes | +----------------------+ | categoria_productos | | cliente | | detalle_factura | | empleado | | factura | | facturas_finales | | facturas_hombres | | facturas_mujeres | | inventario | | metodo_pago | | pagos | | productos | | proveedores | | roles | | usuario | +----------------------+ 15 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | +------------+------------+-------------+------------+-------------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from pagos; +------------+----------------+------+ | id_factura | id_metodo_pago | pago | +------------+----------------+------+ | 1 | 1 | 1 | +------------+----------------+------+ 1 row in set (0,001 sec) MariaDB [AutoPartes]> select*from metodo_pago; +----------------+---------------+ | id_metodo_pago | nombre_metodo | +----------------+---------------+ | 1 | Efectivo | | 2 | Tarjeta | | 3 | Transferencia | | 4 | Cheque | +----------------+---------------+ 4 rows in set (0,001 sec) MariaDB [AutoPartes]> INSERT INTO pagos (id_factura, id_metodo_pago, pago) VALUES -> (11, 2, 1), -- Tarjeta -> (12, 3, 1), -- Transferencia -> (13, 4, 1), -- Cheque -> (14, 1, 1), -- Efectivo -> (15, 2, 1), -- Tarjeta -> (16, 3, 1), -- Transferencia -> (17, 4, 1), -- Cheque -> (18, 1, 1), -- Efectivo -> (19, 2, 1); -- Tarjeta Query OK, 9 rows affected (0,004 sec) Records: 9 Duplicates: 0 Warnings: 0 MariaDB [AutoPartes]> select*from productos; +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ | id_producto | id_categoria | precio | valor_venta | nombre_producto | descripcion | +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ | 1 | 1 | 150000.00 | 180000.00 | Filtro de aceite Bosch | Filtro de aceite compatible con motores de gasolina y diésel, mejora la lubricación del motor. | | 2 | 1 | 320000.00 | 380000.00 | Bujías NGK Iridium | Juego de 4 bujías de iridio para alto rendimiento y durabilidad. | | 3 | 2 | 280000.00 | 340000.00 | Amortiguador trasero Monroe | Amortiguador hidráulico para vehículos de gama media, mejora la estabilidad y confort. | | 4 | 3 | 120000.00 | 150000.00 | Pastillas de freno Brembo | Pastillas de freno de cerámica para autos compactos, alta durabilidad y frenado eficiente. | | 5 | 4 | 950000.00 | 1100000.00 | Embrague LUK completo | Kit de embrague con prensa, disco y balinera, ideal para transmisión manual. | | 6 | 5 | 480000.00 | 530000.00 | Alternador Bosch 12V 90A | Alternador de alta eficiencia para vehículos de gasolina, con garantía de 1 año. | | 7 | 6 | 350000.00 | 400000.00 | Espejo retrovisor derecho | Espejo lateral con ajuste manual, carcasa negra resistente a impactos. | | 8 | 7 | 420000.00 | 480000.00 | Radiador de aluminio | Radiador de refrigeración de alto rendimiento para vehículos de 4 cilindros. | | 9 | 8 | 250000.00 | 295000.00 | Silenciador universal | Silenciador trasero de acero inoxidable con baja restricción de flujo. | | 10 | 9 | 80000.00 | 95000.00 | Aceite de motor Castrol 10W40 | Aceite semisintético de alta protección para motores a gasolina. | | 11 | 10 | 150000.00 | 185000.00 | Juego de llaves combinadas Truper | Set de 12 llaves de acero al cromo vanadio, ideal para talleres mecánicos. | +-------------+--------------+-----------+-------------+-----------------------------------+--------------------------------------------------------------------------------------------------+ 11 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from detalle_factura; +--------------------+------------+-------------+-------------------+-----------------+ | id_detalle_factura | id_factura | id_producto | cantidad_producto | total_productos | +--------------------+------------+-------------+-------------------+-----------------+ | 7 | 1 | 1 | 2 | 360000.00 | | 8 | 1 | 4 | 1 | 150000.00 | | 9 | 1 | 9 | 3 | 885000.00 | | 11 | 11 | 1 | 2 | 360000.00 | | 12 | 11 | 4 | 1 | 150000.00 | | 13 | 12 | 3 | 1 | 340000.00 | | 14 | 12 | 10 | 2 | 190000.00 | | 15 | 13 | 2 | 1 | 380000.00 | | 16 | 13 | 7 | 1 | 400000.00 | | 17 | 14 | 6 | 1 | 530000.00 | | 18 | 14 | 8 | 1 | 480000.00 | | 19 | 15 | 9 | 1 | 295000.00 | | 20 | 15 | 10 | 3 | 285000.00 | | 21 | 16 | 11 | 1 | 185000.00 | | 22 | 16 | 5 | 1 | 1100000.00 | | 23 | 17 | 2 | 2 | 760000.00 | | 24 | 17 | 4 | 2 | 300000.00 | | 25 | 18 | 3 | 2 | 680000.00 | | 26 | 18 | 6 | 1 | 530000.00 | | 27 | 19 | 8 | 1 | 480000.00 | | 28 | 19 | 1 | 3 | 540000.00 | +--------------------+------------+-------------+-------------------+-----------------+ 21 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from factura; +------------+------------+-------------+------------+-------------+ | id_factura | id_cliente | id_empleado | fecha | total_venta | +------------+------------+-------------+------------+-------------+ | 1 | 1001 | 2003 | 2025-11-08 | 1395000.00 | | 11 | 1002 | 2003 | 2025-11-01 | 510000.00 | | 12 | 1003 | 2004 | 2025-11-02 | 530000.00 | | 13 | 1004 | 2001 | 2025-11-03 | 780000.00 | | 14 | 1005 | 2002 | 2025-11-04 | 1010000.00 | | 15 | 1006 | 2005 | 2025-11-05 | 580000.00 | | 16 | 1007 | 2006 | 2025-11-06 | 1285000.00 | | 17 | 1008 | 2007 | 2025-11-07 | 1060000.00 | | 18 | 1009 | 2008 | 2025-11-08 | 1210000.00 | | 19 | 1010 | 2009 | 2025-11-09 | 1020000.00 | +------------+------------+-------------+------------+-------------+ 10 rows in set (0,001 sec) MariaDB [AutoPartes]> SELECT -> c.documento_cliente, -> CONCAT(c.nombre1, ' ', c.apellido1) AS nombre_cliente, -> f.id_factura, -> d.id_producto, -> p.nombre_producto, -> d.cantidad_producto, -> d.total_productos -> FROM cliente c -> JOIN factura f ON c.documento_cliente = f.id_cliente -> JOIN detalle_factura d ON f.id_factura = d.id_factura -> JOIN producto p ON d.id_producto = p.id_producto -> WHERE d.id_producto = 2; ERROR 1146 (42S02): Table 'AutoPartes.producto' doesn't exist MariaDB [AutoPartes]> SELECT -> c.documento_cliente, -> CONCAT(c.nombre1, ' ', c.apellido1) AS nombre_cliente, -> f.id_factura, -> d.id_producto, -> p.nombre_producto, -> d.cantidad_producto, -> d.total_productos -> FROM cliente c -> JOIN factura f -> ON c.documento_cliente = f.id_cliente -> JOIN detalle_factura d -> ON f.id_factura = d.id_factura -> JOIN productos p -> ON d.id_producto = p.id_producto -> WHERE d.id_producto = 2; +-------------------+-------------------+------------+-------------+---------------------+-------------------+-----------------+ | documento_cliente | nombre_cliente | id_factura | id_producto | nombre_producto | cantidad_producto | total_productos | +-------------------+-------------------+------------+-------------+---------------------+-------------------+-----------------+ | 1004 | Mariana Torres | 13 | 2 | Bujías NGK Iridium | 1 | 380000.00 | | 1008 | Valentina Suárez | 17 | 2 | Bujías NGK Iridium | 2 | 760000.00 | +-------------------+-------------------+------------+-------------+---------------------+-------------------+-----------------+ 2 rows in set (0,001 sec) MariaDB [AutoPartes]> select*from detalle_factura; +--------------------+------------+-------------+-------------------+-----------------+ | id_detalle_factura | id_factura | id_producto | cantidad_producto | total_productos | +--------------------+------------+-------------+-------------------+-----------------+ | 7 | 1 | 1 | 2 | 360000.00 | | 8 | 1 | 4 | 1 | 150000.00 | | 9 | 1 | 9 | 3 | 885000.00 | | 11 | 11 | 1 | 2 | 360000.00 | | 12 | 11 | 4 | 1 | 150000.00 | | 13 | 12 | 3 | 1 | 340000.00 | | 14 | 12 | 10 | 2 | 190000.00 | | 15 | 13 | 2 | 1 | 380000.00 | | 16 | 13 | 7 | 1 | 400000.00 | | 17 | 14 | 6 | 1 | 530000.00 | | 18 | 14 | 8 | 1 | 480000.00 | | 19 | 15 | 9 | 1 | 295000.00 | | 20 | 15 | 10 | 3 | 285000.00 | | 21 | 16 | 11 | 1 | 185000.00 | | 22 | 16 | 5 | 1 | 1100000.00 | | 23 | 17 | 2 | 2 | 760000.00 | | 24 | 17 | 4 | 2 | 300000.00 | | 25 | 18 | 3 | 2 | 680000.00 | | 26 | 18 | 6 | 1 | 530000.00 | | 27 | 19 | 8 | 1 | 480000.00 | | 28 | 19 | 1 | 3 | 540000.00 | +--------------------+------------+-------------+-------------------+-----------------+ 21 rows in set (0,001 sec) MariaDB [AutoPartes]> notee; ================================================== # ANÁLISIS DE CONSULTAS SQL EN MARIADB (AutoPartes) ================================================== ## 1. Consulta Inicial (SELECT con INNER JOIN) --- # Propósito: Obtener un listado detallado de todas las ventas, combinando # la información general de la factura con cada uno de los productos vendidos. SELECT f.id_factura, f.id_cliente, f.id_empleado, f.fecha, f.total_venta, d.id_detalle_factura, d.id_producto, d.cantidad_producto, d.total_productos FROM factura f INNER JOIN detalle_factura d ON f.id_factura = d.id_factura ORDER BY f.id_factura, d.id_detalle_factura; # Nota: La sintaxis original usaba una subconsulta redundante, se simplifica aquí. # [cite_start]Resultado: 21 filas, donde cada fila es un detalle de producto por factura[cite: 26]. ================================================== ## 2. Creación y Manejo de la Vista facturas_finales --- # Propósito: Crear un objeto persistente que combine la información de facturas # y detalles de factura para futuras consultas fáciles. # 2.1. Intentar crear como Tabla (Éxito) CREATE TABLE facturas_finales AS SELECT f.*, d.* FROM factura f INNER JOIN detalle_factura d ON f.id_factura = d.id_factura; # Resultado: Query OK, 21 rows affected. [cite_start]Se crea una tabla física[cite: 27, 28]. # 2.2. Intentar crear como Vista (Fallo por tipo de objeto) CREATE OR REPLACE VIEW facturas_finales AS (...) # [cite_start]Resultado: ERROR 1347: 'AutoPartes.facturas_finales' is not of type 'VIEW'[cite: 55]. # 2.3. Corrección: Eliminar la Tabla DROP TABLE facturas_finales; # Resultado: Query OK. [cite_start]La tabla es eliminada[cite: 56]. # 2.4. Corrección Final: Crear como Vista (Éxito) CREATE OR REPLACE VIEW facturas_finales AS SELECT f.*, d.* FROM factura f INNER JOIN detalle_factura d ON f.id_factura = d.id_factura; # Resultado: Query OK. [cite_start]Se crea una vista lógica[cite: 58]. ================================================== ## 3. Vistas para Segmentación de Clientes por Género --- # Propósito: Segmentar las facturas por el género del cliente para análisis. # Ambas consultas unen 'factura' (f) con 'cliente' (c) por documento/ID. # 3.1. Vista facturas_hombres (Filtra por 'Masculino') CREATE OR REPLACE VIEW facturas_hombres AS SELECT f.id_factura, f.id_cliente, CONCAT(c.nombre1, ' ', c.apellido1) AS nombre_cliente, c.genero, f.total_venta FROM factura f INNER JOIN cliente c ON f.id_cliente = c.documento_cliente WHERE c.genero = 'Masculino'; # [cite_start]Resultado: 5 filas (facturas) de clientes masculinos (ej: Carlos Gómez, Diego Hernández)[cite: 112, 113, 119]. # 3.2. Vista facturas_mujeres (Filtra por 'Femenino') CREATE OR REPLACE VIEW facturas_mujeres AS SELECT f.id_factura, f.id_cliente, CONCAT(c.nombre1, ' ', c.apellido1) AS nombre_cliente, c.genero, f.total_venta FROM factura f INNER JOIN cliente c ON f.id_cliente = c.documento_cliente WHERE c.genero = 'Femenino'; # [cite_start]Resultado: 5 filas (facturas) de clientes femeninos (ej: Laura Rodríguez, Camila Cárdenas)[cite: 127, 135]. ================================================== ## 4. Inserción de Registros de Pagos --- # Propósito: Llenar la tabla 'pagos' con el método de pago utilizado para las facturas. INSERT INTO pagos (id_factura, id_metodo_pago, pago) VALUES (11, 2, 1), -- 2: Tarjeta (12, 3, 1), -- 3: Transferencia (13, 4, 1), -- 4: Cheque (14, 1, 1), -- 1: Efectivo (15, 2, 1), (16, 3, 1), (17, 4, 1), (18, 1, 1), (19, 2, 1); # [cite_start]Resultado: Se agregaron 9 filas a la tabla 'pagos'[cite: 187]. ================================================== ## 5. Consulta de Ventas de un Producto Específico (ID 2) --- # Propósito: Detallar quién compró el producto con ID=2. SELECT c.documento_cliente, CONCAT(c.nombre1, ' ', c.apellido1) AS nombre_cliente, f.id_factura, d.id_producto, p.nombre_producto, d.cantidad_producto, d.total_productos FROM cliente c JOIN factura f ON c.documento_cliente = f.id_cliente JOIN detalle_factura d ON f.id_factura = d.id_factura JOIN productos p ON d.id_producto = p.id_producto WHERE d.id_producto = 2; # [cite_start]Resultado: 2 ventas del Producto 2 ('Bujías NGK Iridium')[cite: 236, 237, 238, 239]. # La compra fue realizada por Mariana Torres (1 unidad) y Valentina Suárez (2 unidades).