SQL - rentabilidad de un cliente en tablas distintas

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 22 puestos en SQL (en relación al último mes)
Gráfica de SQL

rentabilidad de un cliente en tablas distintas

Publicado por Bernat (3 intervenciones) el 02/05/2019 09:10:09
Hola,
Estoy haciendo distintas consultas sobre el siguiente esquema y hay una que no hay manera.
Agradecería si me pudierais ayudar.
esquema

La consulta deberia mostrar el nif i nombre de los 20 clientes más rentables. Entendiendo como rentabilidad la division del total que euros que ha gastado entre el total de compras que ha realizado (euros gatados / compras realizadas).

No sé como enfocar la subconsulta ni mucho menos la consulta entera.

Gracias !!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

rentabilidad de un cliente en tablas distintas

Publicado por Isaias (1921 intervenciones) el 02/05/2019 18:05:22
Hola

¿Donde se localizan estos datos? euros gatados / compras realizadas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 22 puestos en SQL (en relación al último mes)
Gráfica de SQL

rentabilidad de un cliente en tablas distintas

Publicado por blluch (3 intervenciones) el 03/05/2019 11:02:56
Gracias por la respuesta Isaias.

Los euros gastados son: PREU * QUANTITAT
I la cantidad de compras realizadas son: cantidad de pedidos -COMANDES- del mismo cliente

Espero que así se entienda mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

rentabilidad de un cliente en tablas distintas

Publicado por Isaias (1921 intervenciones) el 03/05/2019 22:22:53
Te voy a dar los DOS query's que me mencionas, ¿El resultado final podrías intentar obtener lo tu?

1
2
3
4
5
6
7
8
9
10
-- euros gastados
SELECT pro.preu * dc.quantitat
FROM poructes pro inner join detall_comandes dc
on pro.codi = dc.producte
 
--cantidad de compras
SELECT cli.id_client, count(co.numero)
FROM cli.clients inner join comandes co
on cli.id_client = co.numero
GROUP BY cli.id_client
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 22 puestos en SQL (en relación al último mes)
Gráfica de SQL

rentabilidad de un cliente en tablas distintas

Publicado por blluch (3 intervenciones) el 06/05/2019 16:17:21
Gracias Isaias,

He probado tu solución y no me ha acabado de salir.

Al final he realizado la siguiente consulta:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT clients.nif, clients.nom, clients.cognoms,
(SUM(productes.preu * detall_comandes.quantitat)  / 
(SELECT COUNT(comandes.numero)
		FROM clients AS clients1 INNER JOIN comandes ON clients1.id_client = comandes.client
        WHERE clients1.id_client = clients.id_client
        GROUP BY clients1.id_client)) AS rentabilitat
 
FROM clients INNER JOIN comandes ON clients.id_client = comandes.client
	INNER JOIN detall_comandes ON comandes.numero = detall_comandes.comanda
	INNER JOIN productes ON detall_comandes.producte = productes.codi
GROUP BY clients.nif, clients.nom, clients.cognoms, clients.id_client
ORDER BY rentabilitat DESC;

Muchas gracias por todo
Bernat
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

rentabilidad de un cliente en tablas distintas

Publicado por Isaias (1921 intervenciones) el 06/05/2019 18:23:12
Que bien, la solución que yo te mande, solo era el principio, que bueno que lo resolviste, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar