INICIO FORO
Regresar   ForoCoches > Zona General > General

  Enunciado Consultas Mysql  
Respuesta

 
Herramientas
Viejo 23-may-2020, 03:47   #1
Limonrlz
ForoCoches: Usuario
 
Avatar de Limonrlz
 
May 2020 | 16 Mens.
Lugar: Sevilla
Enunciado Consultas Mysql

Buenas, resulta que tengo un trabajo de unos cuantos apartados, y me he atascado a uno en particular(todos los demas ya los he terminado), porque no entiendo lo que hay que hacer, asi que recurro a vosotros ya que los profesores tardan 2 dias en responder con suerte.

Según las visualizaciones existentes, indicad cuánto tiene que pagar cada abonado (dni) de más cantidad monetaria a menos.

Os pongo en situacion:
Tengo 2 tablas.
Clientes y productos.
tengo que indicar cuanto debe pagar cada cliente, por haber consumido cada producto.
Como resultado final tengo que dejar una respuesta a la consulta que aparezca:
Cuota mensual(Y el dinero a pagar) y aparte, el dni del cliente. Ordenado de mayor cantidad a pagar a menor.
La verdad es que llevo un rato probando y no doy con la tecla, y nisiquiera es el ejercicio mas complicado del trabajo, pero ha ido a tocarme las cosquillas y no lo saco.
Agradezco vuestra ayuda si me la dais jaja
Limonrlz está desconectado   Responder Con Cita


Viejo 23-may-2020, 03:48   #2
Fiddler
ForoCoches: Usuario
 
Dic 2018 | 269 Mens.
Lugar: Malaga

Mercedes

A buenas horas preguntas SQL,voy a ver si puedo echarte una mano
Fiddler está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:50   #3
Limonrlz
ForoCoches: Usuario
 
Avatar de Limonrlz
 
May 2020 | 16 Mens.
Lugar: Sevilla
Cita:
Originalmente Escrito por Fiddler Ver Mensaje
A buenas horas preguntas SQL,voy a ver si puedo echarte una mano
Ya shur, dimelo a mi, que me acosté a las 10 para levantarme fresco, y me acabo de desvelar ahora xD
Limonrlz está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:52   #4
CaballeroNegro
forocochero de hacendado
 
Avatar de CaballeroNegro
 
Ago 2017 | 11.485 Mens.
Lugar: Oerba

Alfa Romeo 147

A ver, no te explicas muy bien, según lo que entiendo yo, debería haber una tabla intermedia que relacione el id de usuario con el id del producto, con fecha de la compra

El club de amigos NO me cerró la bocaza con sus PICHAS CONGELADAS jamás volveré a fiarme de vosotros PUTOS BEBEMATES
CaballeroNegro está desconectado   Responder Con Cita


Viejo 23-may-2020, 03:53   #5
trasgok
Sobre la delta de dirac &
 
Avatar de trasgok
 
Oct 2008 | 4.508 Mens.
Lugar: Around the world

a5 v6 3.2L 265 CV

select dni,sum(price) from cliente join product using c_id group by 1 order by 2 desc

venga a la cama que es tarde

CITA: Me he follado a una tía 10 en cierta discoteca frecuentada por futbolistas, Benzemá le había entrado esa misma noche (y ella rechazado) ... by vecin0 el 24/03/13
trasgok está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:54   #6
Alexnesta
ForoCoches: Miembro
 
Avatar de Alexnesta
 
Sep 2007 | 972 Mens.
Hola Shur, creo que deberías usar LEFT JOIN si no me equivoco con un GROUP BY DNI y SUM para los precios y en el SUM un AS Cuota mensual si no es así lo siento al no tener medios para probar ahora mismo

llllllllllllllllllllllllllllll
Alexnesta está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:54   #7
socartes
ForoCoches: Miembro
 
Avatar de socartes
 
Feb 2017 | 2.426 Mens.

Golf III

Select * | grep price | awk sum -1
socartes está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:55   #8
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Bfff te voy a hacer una subconsulta a ojo

Select c.nombre_cliente, c.dni, p.nombre_producto, p.precio_producto FROM cliente as c = (SELECT codigo_cliente FROM producto as p GROUP BY nombre_producto);

Es que me ayudaría ver las tablas y no tener sueño xD
Tony.Stark está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:55   #9
Kotn
ForoCoches: Usuario
 
Avatar de Kotn
 
Dic 2019 | 525 Mens.
Pon foto del enunciado y del esquema de datos
Kotn está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:56   #10
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Cita:
Originalmente Escrito por CaballeroNegro Ver Mensaje
A ver, no te explicas muy bien, según lo que entiendo yo, debería haber una tabla intermedia que relacione el id de usuario con el id del producto, con fecha de la compra
Yo lo hice de forma que el id de cliente esté en la tabla producto, si no lo está tamos jodidos jajajaja

Genio, billonario, playboy, filántropo y héroe.
Tony.Stark está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:57   #11
Limonrlz
ForoCoches: Usuario
 
Avatar de Limonrlz
 
May 2020 | 16 Mens.
Lugar: Sevilla
Cita:
Originalmente Escrito por trasgok Ver Mensaje
select dni,sum(price) from cliente join product using c_id group by 1 order by 2 desc

venga a la cama que es tarde
Cita:
Originalmente Escrito por Alexnesta Ver Mensaje
Hola Shur, creo que deberías usar LEFT JOIN si no me equivoco con un GROUP BY DNI y SUM para los precios y en el SUM un AS Cuota mensual si no es así lo siento al no tener medios para probar ahora mismo
Cita:
Originalmente Escrito por socartes Ver Mensaje
Select * | grep price | awk sum -1
Cita:
Originalmente Escrito por Tony.Stark Ver Mensaje
Bfff te voy a hacer una subconsulta a ojo

Select c.nombre_cliente, c.dni, p.nombre_producto, p.precio_producto FROM cliente as c = (SELECT codigo_cliente FROM producto as p GROUP BY nombre_producto);

Es que me ayudaría ver las tablas y no tener sueño xD
os dejo aqui las tablas, porque estoy hecho un lio...xD

Donde dije cliente, digo abonados xD.
En principio las unicas tablas que deben intervenir, entiendo que son abonados y productos
Limonrlz está desconectado   Responder Con Cita
Viejo 23-may-2020, 03:59   #12
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Cita:
Originalmente Escrito por Limonrlz Ver Mensaje
os dejo aqui las tablas, porque estoy hecho un lio...xD

Donde dije cliente, digo abonados xD.
En principio las unicas tablas que deben intervenir, entiendo que son abonados y productos
Si no hay relación entre la tabla cliente (abogado¿?) y la tabla producto, poco se puede hacer


No te dieron las tablas dibujadas y unidas por flechas
Tony.Stark está desconectado   Responder Con Cita


Viejo 23-may-2020, 04:00   #13
Tuoen
ForoCoches: Miembro
 
Avatar de Tuoen
 
Sep 2017 | 918 Mens.
Cita:
Originalmente Escrito por Tony.Stark Ver Mensaje
Yo lo hice de forma que el id de cliente esté en la tabla producto, si no lo está tamos jodidos jajajaja
Con producto haces referencia a, por ejemplo, patatas marca lays campesinas, en general o a una bolsa de patatas lays campesinas concreta?
Tuoen está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:01   #14
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Bueno prueba con un left join

Genio, billonario, playboy, filántropo y héroe.
Tony.Stark está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:01   #15
Limonrlz
ForoCoches: Usuario
 
Avatar de Limonrlz
 
May 2020 | 16 Mens.
Lugar: Sevilla
Cita:
Originalmente Escrito por Tony.Stark Ver Mensaje
Si no hay relación entre la tabla cliente (abogado¿?) y la tabla producto, poco se puede hacer
La base de datos es facilitada por el profesor, en principio no deberia haber nada que le falte.
Dejo el Esquema relacional, para ver si queda mas claro de esta manera:

Y el workbench

La relacion entre abonados y productos, parte de los beneficiarios(los usuarios que usan la cuenta del abonado)
Limonrlz está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:02   #16
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Cita:
Originalmente Escrito por Tuoen Ver Mensaje
Con producto haces referencia a, por ejemplo, patatas marca lays campesinas, en general o a una bolsa de patatas lays campesinas concreta?
Puse nombre_producto, creo que lo edité porq se me olvidó el nombre_, nose toy sonámbulo casi jajaaja
Tony.Stark está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:02   #17
CaballeroNegro
forocochero de hacendado
 
Avatar de CaballeroNegro
 
Ago 2017 | 11.485 Mens.
Lugar: Oerba

Alfa Romeo 147

Cita:
Originalmente Escrito por Tony.Stark Ver Mensaje
Yo lo hice de forma que el id de cliente esté en la tabla producto, si no lo está tamos jodidos jajajaja
Yo entiendo que un cliente ha comprado digamos varios productos, y eso no lo puedes poner en una de las 2 tablas, tiene que ser relacionado en una tabla intermedia que relaciones id usuario, id producto, fecha compra.

Partiendo de eso, en esa tabla intermedia, llámese compra, al haber digamos:

id usuario -- id producto -- fecha

1 - manzana - 10-10-1990
1 - naranja - 10-10-1990
1 - platano - 10-10-1990
1 - chuleta - 10-10-1990

Y luego aquí hacer ya la magia

El club de amigos NO me cerró la bocaza con sus PICHAS CONGELADAS jamás volveré a fiarme de vosotros PUTOS BEBEMATES
CaballeroNegro está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:02   #18
Tuoen
ForoCoches: Miembro
 
Avatar de Tuoen
 
Sep 2017 | 918 Mens.
Cita:
Originalmente Escrito por Limonrlz Ver Mensaje
os dejo aqui las tablas, porque estoy hecho un lio...xD

Donde dije cliente, digo abonados xD.
En principio las unicas tablas que deben intervenir, entiendo que son abonados y productos
Abonado y producto me parece que no están unidos
Tuoen está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:03   #19
Limonrlz
ForoCoches: Usuario
 
Avatar de Limonrlz
 
May 2020 | 16 Mens.
Lugar: Sevilla
Cita:
Originalmente Escrito por CaballeroNegro Ver Mensaje
Yo entiendo que un cliente ha comprado digamos varios productos, y eso no lo puedes poner en una de las 2 tablas, tiene que ser relacionado en una tabla intermedia que relaciones id usuario, id producto, fecha compra.

Partiendo de eso, en esa tabla intermedia, llámese compra, al haber digamos:

id usuario -- id producto -- fecha

1 - manzana - 10-10-1990
1 - naranja - 10-10-1990
1 - platano - 10-10-1990
1 - chuleta - 10-10-1990

Y luego aquí hacer ya la magia
Como digo, en principio deberia poder hacerlo con lo que me han proporcionado xD.
Y sigo bastante rallado, es que no se por donde meterle mano
Este es el resultado que debe devolver la consulta:
Limonrlz está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:04   #20
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Cita:
Originalmente Escrito por Limonrlz Ver Mensaje
La base de datos es facilitada por el profesor, en principio no deberia haber nada que le falte.
Dejo el Esquema relacional, para ver si queda mas claro de esta manera:

Y el workbench

La relacion entre abonados y productos, parte de los beneficiarios(los usuarios que usan la cuenta del abonado)
Vale eso es, prueba esto aunque igual no funciona

Select c.nombre_abodado, c.dni, p.nombre_producto, p.precio_proucto from abogado as c left join producto as p ON id_abogado = id_producto;

Buah no creo que funcione porq no hay relación, vas a tener que hacer 4 subconsultas de abogados a beneficiarios a visualizaciones hasta productos
Tony.Stark está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:08   #21
Limonrlz
ForoCoches: Usuario
 
Avatar de Limonrlz
 
May 2020 | 16 Mens.
Lugar: Sevilla
Cita:
Originalmente Escrito por Tony.Stark Ver Mensaje
Vale eso es, prueba esto aunque igual no funciona

Select c.nombre_abodado, c.dni, p.nombre_producto, p.precio_proucto from abogado as c left join producto as p ON id_abogado = id_producto;

Buah no creo que funcione porq no hay relación, vas a tener que hacer 4 subconsultas de abogados a beneficiarios a visualizaciones hasta productos

Ajustandolo a los nombres, no tiene pinta de ser asi jajaja
TIene pinta de que si, de ahi que valga 1.2 puntos y la que mas vale de la practica es 1.5, osea que es de las mas complicadillas que nos han puesto
Limonrlz está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:09   #22
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Cita:
Originalmente Escrito por Limonrlz Ver Mensaje

Ajustandolo a los nombres, no tiene pinta de ser asi jajaja
TIene pinta de que si, de ahi que valga 1.2 puntos y la que mas vale de la practica es 1.5, osea que es de las mas complicadillas que nos han puesto
Ponme el enunciado a ver

Genio, billonario, playboy, filántropo y héroe.
Tony.Stark está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:10   #23
Limonrlz
ForoCoches: Usuario
 
Avatar de Limonrlz
 
May 2020 | 16 Mens.
Lugar: Sevilla
Cita:
Originalmente Escrito por Tony.Stark Ver Mensaje
Ponme el enunciado a ver
Paso 10. Según las visualizaciones existentes, indicad cuánto tiene que pagar cada
abonado (dni) de más cantidad monetaria a menos.
No se han extendido mucho
Limonrlz está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:15   #24
Mimie
ForoCoches: Miembro
 
Avatar de Mimie
 
Nov 2015 | 310 Mens.
Lugar: Bilbao

Megane

Tú tabla "intermedia" es visualizaciones por lo que parece, vamos tiene los identificativos de los abonados y de los productos

A ver si saco algo
Mimie está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:16   #25
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Cita:
Originalmente Escrito por Limonrlz Ver Mensaje
Paso 10. Según las visualizaciones existentes, indicad cuánto tiene que pagar cada
abonado (dni) de más cantidad monetaria a menos.
No se han extendido mucho
Código:
SELECT idAbonado 
FROM abonados
WHERE idAbonado = (SELECT idAbonado
		   FROM beneficiarios
		   WHERE idBeneficiario = (SELECT idBeneficiario
					   FROM visualizaciones
					   WHERE idVisualizacion = (SELECT id Visualizacion
								    FROM producto
								    where precioProducto order by DESC)));
prueba a ver esto, comprueba la sintaxis que toy medio sobao xD

en from producto, añadele as p --- y en el primer select le pone p.precio para que salga

Genio, billonario, playboy, filántropo y héroe.
Tony.Stark está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:18   #26
Tuoen
ForoCoches: Miembro
 
Avatar de Tuoen
 
Sep 2017 | 918 Mens.
Select b.idAbonadoFk, SUM(p.precioProducto)
FROM visualizaciones as v, beneficiarios as b, productos as p
WHERE v.idBeneFiciarioFH = b.idBeneficiario AND v.idProductoFK = p.idProducto
GROUP BY b.idAbonadoFk
ORDER BY SUM(p.precioProducto) DESC

Yo probaría algo así, aunque poca fe tengo en ese where

Última edición por Tuoen fecha: 23-may-2020 a las 04:25.
Tuoen está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:25   #27
Limonrlz
ForoCoches: Usuario
 
Avatar de Limonrlz
 
May 2020 | 16 Mens.
Lugar: Sevilla
Cita:
Originalmente Escrito por Tony.Stark Ver Mensaje
Código:
SELECT idAbonado 
FROM abonados
WHERE idAbonado = (SELECT idAbonado
		   FROM beneficiarios
		   WHERE idBeneficiario = (SELECT idBeneficiario
					   FROM visualizaciones
					   WHERE idVisualizacion = (SELECT id Visualizacion
								    FROM producto
								    where precioProducto order by DESC)));
prueba a ver esto, comprueba la sintaxis que toy medio sobao xD
Me salta un error de la que la subconsulta devuelve mas de 1 columna.
El codigo final me ha quedado asi---> SELECT idAbonado FROM abonados WHERE idAbonado = (SELECT idAbonado FROM beneficiarios WHERE idBeneficiario = (SELECT idBeneficiario FROM visualizaciones WHERE idVisualizacion = (SELECT idVisualizacion AS 'Cuota mensual' FROM productos where precioProducto order by precioProducto DESC)));


Cita:
Originalmente Escrito por Tuoen Ver Mensaje
Select b.idAbonadoFk, SUM(p.producto)
FROM visualizaciones as v, beneficiarios as b, productos as p
WHERE v.idBeneFiciarioFH = b.idBeneficiario AND v.idProductoFK = p.idProducto
GROUP BY b.idAbonadoFk
ORDER BY SUM(p.producto)

Yo probaría algo así, aunque poca fe tengo en ese where
Que va shur, esto me devuelve algo que no tiene nada que ver jaja

Última edición por Limonrlz fecha: 23-may-2020 a las 04:27.
Limonrlz está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:26   #28
Mimie
ForoCoches: Miembro
 
Avatar de Mimie
 
Nov 2015 | 310 Mens.
Lugar: Bilbao

Megane

Select p.nombreProducto from Productos p, visualizaciones V group by v.idProductoFk

Eso debería darte todos los productos agrupados(?)

Select a.nombreAbonado from abonados a, beneficiarios b, visualizaciones V where v.idBeneficiario= b.idBeneficisrio and b.idBeneficisrio=a.idbeneficiario

Eso sí no está mal, los nombres o lo que quieras de los abonados

Ahora vamos sería unirlas y hacer el sum de la columna del precio
Sin lanzar y ver lo que devuelven poco más a estas horas jajaja
Revisa sintaxis y nombres

No hay algo rollo codepen pero para pruebas de bases de datos?
Mimie está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:26   #29
Tony.Stark
ForoCoches: Miembro
 
Avatar de Tony.Stark
 
Sep 2019 | 2.113 Mens.
Lugar: Los Ángeles/Nueva York

Audi R8

Cita:
Originalmente Escrito por Limonrlz Ver Mensaje
Me salta un error de la que la subconsulta devuelve mas de 1 columna.
El codigo final me ha quedado asi SELECT idAbonado FROM abonados WHERE idAbonado = (SELECT idAbonado FROM beneficiarios WHERE idBeneficiario = (SELECT idBeneficiario FROM visualizaciones WHERE idVisualizacion = (SELECT idVisualizacion FROM productos where precioProducto order by precioProducto DESC)));



Que va shur, esto me devuelve algo que no tiene nada que ver jaja
Mierda me equivoqué al especificar el order by ajajaj, te salió?

Genio, billonario, playboy, filántropo y héroe.
Tony.Stark está desconectado   Responder Con Cita
Viejo 23-may-2020, 04:26   #30
Tuoen
ForoCoches: Miembro
 
Avatar de Tuoen
 
Sep 2017 | 918 Mens.
Cita:
Originalmente Escrito por Limonrlz Ver Mensaje
Me salta un error de la que la subconsulta devuelve mas de 1 columna.
El codigo final me ha quedado asi SELECT idAbonado FROM abonados WHERE idAbonado = (SELECT idAbonado FROM beneficiarios WHERE idBeneficiario = (SELECT idBeneficiario FROM visualizaciones WHERE idVisualizacion = (SELECT idVisualizacion FROM productos where precioProducto order by precioProducto DESC)));



Que va shur, esto me devuelve algo que no tiene nada que ver jaja
Fijate que lo he editado y he cambiado p.producto por p.precioProducto, que me he despistado
Tuoen está desconectado   Responder Con Cita


Respuesta

Regresar   Inicio | ForoCoches > Zona General > General
Herramientas


 [ VERSIÓN MÓVIL ]
Info Legal | Privacidad | Cookies | Notificaciones | Normas de uso | Publicidad | Updates | Stats | Ayuda | Invitaciones | Contacto