SQL - ayuda consulta

   
Vista:

ayuda consulta

Publicado por Eduardo Montero (6 intervenciones) el 10/02/2012 01:48:21
Hola a todos .

Soy nuevo en el foro y me gustaria saber si me pueden ayudar con una consulta sql .
Explico: tengo 4 tablas , socios, vales, cuotasvales y pedidos
tabla socio :Rut, nombre, ap_patero, Ap materno, ...
tabla vales: id_vale,id_empresa,monto,saldo,fecha...
tabla cuotasvales: idvale,saldo,fecha....
tabla pedidos: id_pedidos,rut,monto,saldo,fecha....

La consulta debe mostrar el nombre completo del socio , el rut, la suma de las cuotas de vales y la suma de pedidos, (separados por id_de empresa) de cada socio en una periodo de un mes

espero que me puedan ayudar y disculpen las faltas que pueda haber cometido , como dije antes soy nuevo en esto , de antemano muchas 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

ayuda consulta

Publicado por leonardo_josue (877 intervenciones) el 10/02/2012 16:38:12
Hola Eduardo Montero:

Son dos cosas muy diferentes pedir ayuda para resolver una consulta y pedir que te hagan una consulta... En tu post en realidad no estás expresando ningún problema ni pones alguna consulta en la que estés trabajando, ni tampoco pones cuál es tu duda en concreto, por lo tanto es casi imposible ayudarte... Si lo que necesitas es una Guía para hacer la consulta estos serían algunos tips que tienes que tomar en cuenta:

1. Investiga un poco acerca de JOIN'S (INNER y LEFT o RIGTH), esto te servirá para unir las tablas... toma como base la tabla de socios y haces los JOIN's correspondientes. Si no sabes la diferencia entre los tipos de JOIN's, puedes preguntarle a Santa Wikipedia:

http://es.wikipedia.org/wiki/Join

2. Investiga acerca de funciones de agregación (en concreto la función SUM). Esta sentencia, acompañada de la cláusula GROUP BY sirve para sumar conjuntos de registros al nivel de desglose que quieras.

3. El manejo de fechas puede variar mucho de un DBMS a otro, por lo que será necesario que investigues las funciones de fecha y hora que te proporciona la BD con la que estés trabajando. Como recomendación general siempre maneja las fechas en formato ANSI (yyyy-mm-dd)

4. Si continuas con problemas, postea algo de lo que intentaste hacer para ayudarte a afinar la consulta, también puedes incluir algunos datos de ejemplo. entre más detalles proporciones más fácil será tratar de ayudarte.

Saludos
Leo.
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

ayuda consulta

Publicado por Eduardo Montero Chaparro (6 intervenciones) el 10/02/2012 22:17:03
gracias por la respuesta e tratado de hacerla consulta pero no e tenido mucho exito con ello por ejemplo la funcion sum la e echo pero no se como hacer que me sume solo los que tienen una determinada id, saludos y gracias por el tiempo
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

ayuda consulta

Publicado por leonardo_josue (877 intervenciones) el 10/02/2012 22:33:24
No entiendo cuál es la duda con respecto a la función SUM. Tal como te dije en el primer post, es conveniente que pongas datos cómo son tus datos y qué es lo que esperas de salida, checa este script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
mysql> SELECT * FROM tabla;
+--------+----------+
| codigo | cantidad |
+--------+----------+
| A      |       10 |
| B      |        5 |
| C      |       10 |
| A      |        2 |
| B      |        6 |
| A      |        4 |
+--------+----------+
6 rows in set (0.03 sec)
 
mysql> SELECT codigo, sum(cantidad) FROM tabla GROUP BY codigo;
+--------+---------------+
| codigo | sum(cantidad) |
+--------+---------------+
| A      |            16 |
| B      |            11 |
| C      |            10 |
+--------+---------------+
3 rows in set (0.04 sec)
 
 
mysql> SELECT codigo, sum(cantidad) FROM tabla
    -> WHERE codigo != 'B'
    -> GROUP BY codigo;
+--------+---------------+
| codigo | sum(cantidad) |
+--------+---------------+
| A      |            16 |
| C      |            10 |
+--------+---------------+
2 rows in set (0.07 sec)


No sé si te refieres a esto cuando hablas de filtrar sólo algunos id's...

Saludos
Leo.
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

ayuda consulta

Publicado por Eduardo Montero Chaparro (6 intervenciones) el 11/02/2012 14:40:32
Si a eso me referia pero como lo hago para cuando tengo muchos valores y quiero que sume los que se repitan, haber mira cada socio tiene una ide en este caso es rut , la primera forma que descarto los que no quiero que aparescan son los que tienen saldo =0 eso lo puedo hacer pero los que tienen mas de un saldo quiero que se sumen, en la colsuta que tu me enviaste los separo por los que son diferentes a B .

sigo agreciendote un monton por tomarte la molestia y disculpa mi patudes pero soy un desatre en consultas con un pokito mas de complejidad y no creas que no lo e buscado , porque si lo e echo e leido y para ser sincero no lo entiendo mucho y por eso recurri al foro.
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

ayuda consulta

Publicado por leonardo_josue (877 intervenciones) el 13/02/2012 16:18:38
La consulta que te puse ESTÁ SUMANDO REGISTROS IGUALES, la tabla original contiene estos datos
1
2
3
4
5
6
7
8
9
10
+--------+----------+
| codigo | cantidad |
+--------+----------+
| A      |       10 |
| B      |        5 |
| C      |       10 |
| A      |        2 |
| B      |        6 |
| A      |        4 |
+--------+----------+


Observa que hay tres registros con código = A, y dos registros con código = B, por lo tanto si haces esto:

1
2
3
4
5
6
7
8
9
mysql> SELECT codigo, sum(cantidad) FROM tabla GROUP BY codigo;
+--------+---------------+
| codigo | sum(cantidad) |
+--------+---------------+
| A      |            16 | --> 10 + 2 + 4
| B      |            11 | --> 5 + 6
| C      |            10 |
+--------+---------------+
3 rows in set (0.04 sec)


Te Agrupa los registros iguales, sumando las cantidades. ¿No es esto lo que necesitas? bues explica mejor cual es el problema... es el tercer post donde de digo que debes incluir tus propios datos para tener idea de qué es lo que quieres.

Saludos
Leo.
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

ayuda consulta

Publicado por Eduardo Montero Chaparro (6 intervenciones) el 13/02/2012 19:44:26
hago el siguente consulta

SELECT rut, Sum(saldo)
FROM pedidos
GROUP BY rut

y me aparece el rut mas la suma de su saldo, pero si quiero agregar mas datos como por ejemplo la fecha, no me aparecen las sumas

SELECT rut,fecha, Sum(saldo)
FROM pedidos
GROUP BY rut, fecha

y esta es la consulta que estoy utilizando pero me muestra todo los saldo y no solo los que suma

SELECT socios.rut, socios.nombre, socios.ap_pat, socios.ap_mat, pedidos.id_pedido, pedidos.fecha, Sum(pedidos.saldo) AS SumaDesaldo
FROM socios INNER JOIN pedidos ON socios.rut = pedidos.rut
GROUP BY socios.rut, socios.nombre, socios.ap_pat, socios.ap_mat, pedidos.id_pedido, pedidos.fecha
HAVING (((pedidos.fecha)>='$fechaini') AND ((Sum(pedidos.saldo))>0))
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

ayuda consulta

Publicado por Eduardo Montero Chaparro (6 intervenciones) el 17/02/2012 13:34:05
Gracias el tema ya lo solucionado
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