Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Dilema de consultas

Estas en el tema de Dilema de consultas en el foro de Mysql en Foros del Web. Hola, tengo el siguiente dilema y no se como resolverlo, espero ser lo mas claro posible por que es un poco enredado: 1) Tengo una ...
  #1 (permalink)  
Antiguo 14/10/2013, 15:38
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Dilema de consultas

Hola, tengo el siguiente dilema y no se como resolverlo, espero ser lo mas claro posible por que es un poco enredado:

1) Tengo una tabla llamada "solicitar" donde tengo los siguientes campos

id | descripcion | cantidad

2) Tengo una segunda tabla llamada "comprar" donde tengo los siguientes campos

id | id_solicitar | cantidad

3) Estas tablas tienen una relacion 1:m donde

solicitar -1--------<>--------m- comprar

Es decir que 1 solicitud puede tener muchas compras y una compra siempre corresponde a una sola solicitud.

4) Quiero hacer una consulta como la siguiente (la hago a mano si hay un error me dicen pero el propósito es otro)

Código MySQL:
Ver original
  1. SELECT solicitar.cantidad as solicitado, comprar.cantidad as comprado FROM solicitar INNER JOIN comprar ON comprar.id_solicitar = solicitar.id WHERE solicitar.id = 1

5) Supongamos que para el id 1 en solicitar tengo:

id | descripcion | cantidad
---------------------------------
1 | sillas | 30

6) y que realice varias compras de sillas, en la tabla seria algo como

id | id_solicitar | cantidad
---------------------------------
1 | 1 | 6
---------------------------------
2 | 1 | 5
---------------------------------
3 | 1 | 3

7) la consulta que hice que me dará?

solicitado = 30
comprado = 14

Bueno hasta aquí quería llegar, por que lo que busco es que me de la suma pero lo logico es que no funcione o me de uno de los valores y no los sume...

La pregunta son estas: ¡con esto estaré bien o debo considerar otra cosa para la suma? ¿Lo que hice efectivamente llega a ese resultado, cual es el resultado correcto de lo que hice?

Gracias agradesco su paciencia (no es tarea, resumi mi problema a algo muy basico para que se entendiera... ya que si me pongo a copiar y pegar no me iban a entender... )
  #2 (permalink)  
Antiguo 15/10/2013, 00:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Dilema de consultas

Código MySQL:
Ver original
  1. SELECT solicitar.cantidad as solicitado,
  2.              comprar.cantidad as comprado
  3. FROM solicitar INNER JOIN comprar
  4.        ON comprar.id_solicitar = solicitar.id
  5. WHERE solicitar.id = 1

Como habras visto tu consulta NO da ese resultado, siguiendo con tu ejemplo esta consulta da lo siguiente:

Solicidado | Comprado
30 | 6
30 | 5
30 | 3

Lo que estas buscando es esto

Código MySQL:
Ver original
  1. SELECT solicitar.descripcion,
  2.              solicitar.cantidad as solicitado,
  3.              SUM(comprar.cantidad) as comprado
  4. FROM solicitar INNER JOIN comprar
  5.        ON comprar.id_solicitar = solicitar.id
  6. WHERE solicitar.id = 1
  7. GROUP BY solicitar.descripcion
  8.              solicitar.cantidad;

Lo que si dará

Sillas | 30 | 14
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 15/10/2013, 08:10
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Dilema de consultas

Gracias por la ayuda

Etiquetas: campo, join, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.