I want to know the total of each product that each customer has bought and I don't know how to add the total per customer.
The tables are as follows:
CREATE TABLE CLIENTES -- Customers
(
CODIGO NUMBER(4,0) PRIMARY KEY, -- customer ID
NOMBRE VARCHAR2(30) NOT NULL, -- number
APELLIDOS VARCHAR2(30) NOT NULL, -- surnames
EDAD NUMBER(2,0) NOT NULL -- age
);
CREATE TABLE PEDIDOS -- Orders
(
NUM NUMBER(5,0) PRIMARY KEY, -- order ID
FECHA DATE NOT NULL, -- date
GASTOS_ENVIO NUMBER(5,2), -- shipping costs
FECHA_PREVISTA DATE NOT NULL, -- expected (shipping) date
TOTAL NUMBER(10,2) , -- total
CLIENTE NUMBER(4,0), -- customer ID
CONSTRAINT CLIENTES_FK FOREIGN KEY (CLIENTE) REFERENCES CLIENTES (CODIGO)
);
CREATE TABLE PRODUCTOS -- Products
(
CODIGO NUMBER(5,0) PRIMARY KEY, -- product ID
NOMBRE VARCHAR2(30) NOT NULL, -- amount
PRECIO NUMBER(7,2) NOT NULL -- price
);
CREATE TABLE LINEAS -- Lines
(
NUM NUMBER(2,0), -- line ID
NUM_PEDIDO NUMBER(5,0), -- order ID
PRODUCTO NUMBER(5,0) NOT NULL , -- product ID
CANTIDAD NUMBER(8,0) NOT NULL , -- customer ID
IMPORTE NUMBER(6,2), -- amount
CONSTRAINT DETALLE_PK PRIMARY KEY (NUM, NUM_PEDIDO) ,
CONSTRAINT PEDIDO_FK FOREIGN KEY (NUM_PEDIDO)
REFERENCES PEDIDOS (NUM) ,
CONSTRAINT PRODUCTO_FK FOREIGN KEY (PRODUCTO)
REFERENCES PRODUCTOS (CODIGO)
);
The query I am currently trying is:
SELECT c.CODIGO, pr.NOMBRE, COUNT (l.CANTIDAD) AS TOTALPEDIDO
FROM CLIENTES c
INNER JOIN PEDIDOS p ON p.CLIENTE= c.CODIGO
INNER JOIN LINEAS l ON l.NUM_PEDIDO=p.NUM
INNER JOIN PRODUCTOS pr ON pr.CODIGO=l.PRODUCTO
GROUP BY c.CODIGO, pr.NOMBRE
ORDER BY c.CODIGO;
And it gives me the sum of the last order.
Can you guide me please?
Gracias
This question has been translated from Spanish to English with the assistance of Google Translate