SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE TABLE Cliente( id_cliente INT NOT NULL PRIMARY KEY, Nombre VARCHAR(40) NOT NULL, Apellido VARCHAR(40) NOT NULL, Direccion VARCHAR(100) NOT NULL, Telefono INT NOT NULL, Tarjeta INT NOT NULL, Edad INT NOT NULL, Salario INT NOT NULL, Genero VARCHAR(5) NOT NULL, id_pais INT NOT NULL ); CREATE TABLE Producto( id_producto INT NOT NULL PRIMARY KEY, Nombre VARCHAR(40) NOT NULL, Precio DECIMAL(10,2) NOT NULL, id_categoria INT NOT NULL ); CREATE TABLE Orden( id_orden INT NOT NULL, linea_orden INT NOT NULL, fecha_orden DATE NOT NULL, id_cliente INT NOT NULL, id_vendedor INT NOT NULL, id_producto INT NOT NULL, cantidad INT NOT NULL, CONSTRAINT fk_orden_cliente FOREIGN KEY(id_cliente) REFERENCES Cliente(id_cliente), CONSTRAINT pk_orden PRIMARY KEY(id_orden, linea_orden) ); CREATE TABLE Detalle( id_detalle INT GENERATED ALWAYS AS IDENTITY, id_producto INT NOT NULL, id_orden INT NOT NULL, linea_orden INT NOT NULL, precio INT NOT NULL, cantidad INT NOT NULL, CONSTRAINT DETALLE_PRODUCTO FOREIGN KEY (id_producto) REFERENCES Producto (id_producto), CONSTRAINT DETALLE_ORDEN FOREIGN KEY (id_orden, linea_orden) REFERENCES Orden (id_orden, linea_orden), CONSTRAINT DETALLE_pk PRIMARY KEY(id_detalle, id_producto, id_orden) ); SELECT Cl.id_cliente, Cl.Nombre, Cl.Apellido, SUM( Detalle.precio * Detalle.cantidad) AS TOTAL FROM Orden INNER JOIN Cliente Cl ON Cl.id_cliente = Orden.id_cliente INNER JOIN Detalle ON Detalle.id_orden = Orden.id_orden GROUP BY Cl.id_cliente, Cl.Nombre, Cl.Apellido ORDER BY TOTAL DESC;
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear