Buen día
Trate de hacer el ejercicio, usando la siguiente consulta:
SELECT CONCAT("El cliente ",NOMBRE," facturo ",
CONVERT((SELECT
FLOOR(SUM(B.CANTIDAD*B.PRECIO)) FROM facturas
A INNER JOIN items_facturas B ON A.NUMERO=B.NUMERO
WHERE YEAR(FECHA_VENTA) = 2016),CHAR),
" en el año ")
AS VENTAS_CLIENTES FROM tabla_de_clientes;
la consulta me muestra los siguientes registros:
El valor que me muestra es la suma total de ventas a clientes del 2016, más no la compra de cada cliente durante el 2016, entonces antes de concatenar, decidí realizar una consulta solo llamando las tablas facturas e items_facturas por el campo Numero:
SELECT A.NUMERO, (CONVERT(FLOOR(SUM(B.CANTIDAD*B.PRECIO)),CHAR)) AS VENTAS_2016 FROM facturas A
INNER JOIN items_facturas B
ON A.NUMERO=B.NUMERO
WHERE YEAR(FECHA_VENTA) = 2016
GROUP BY A.NUMERO;
y este es el resultado de esa consulta:
pero al incluir el codigo anteior para llamar a nombre, antes de concatenar
SELECT A.NOMBRE, (SELECT A.NUMERO, (CONVERT(FLOOR(SUM(B.CANTIDAD*B.PRECIO)),CHAR)) AS VENTAS_2016 FROM facturas A
INNER JOIN items_facturas B
ON A.NUMERO=B.NUMERO
WHERE YEAR(FECHA_VENTA) = 2016
GROUP BY A.NUMERO) FROM tabla_de_clientes A
INNER JOIN facturas B
ON A.DNI=B.DNI
GROUP BY A.NOMBRE, VENTAS_2016;
Me sale el siguiente error
Decidí comenzar de 0, generando esta nueva consulta:
SELECT CONCAT("El cliente ",A.NOMBRE, " facturo ",
CONVERT(ROUND(SUM(B.CANTIDAD*B.PRECIO)),CHAR),
" en el año ",
CONVERT(YEAR(C.FECHA_VENTA),CHAR)) AS RESULTADO
FROM facturas C
INNER JOIN items_facturas B
ON C.NUMERO=B.NUMERO
INNER JOIN tabla_de_clientes A
ON A.DNI=C.DNI
WHERE YEAR(C.FECHA_VENTA) = 2016
GROUP BY NOMBRE, FECHA_VENTA;
y la consulta me muestra los siguientes registros, donde se repite nombre, ya no se que hacer!!!!!!!!!!!!