• Viernes 1 de Noviembre de 2024, 15:32

Autor Tema:  Suma  (Leído 2053 veces)

marisol_ylonen

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Suma
« en: Viernes 29 de Junio de 2007, 01:41 »
0
Hola!
Estoy intentando hacer una suma, pero se me ha complicado proque implica varios campos de la misma columna.
Es esto, resulta que tengo una clave autonumérica, los campos: conjunto, componente, no_almacen y cantidad, entre otros. Varios registros pueden tener el mismo contenido en "conjunto" y en "componentes" pero mi consulta distinct los muestra porque, aunque yo sé que es lo mismo, los otros campos pueden variar. Lo que quiero hacer es sumar la "cantidad" de los que tengan lo mismo en "conjunto" y en "componente". Intenté esto:
strSQL="select sum(PLANEACION.COMPONENTE) from PLANEACION GROUP BY conjunto"
Y quiero tener el resultado en un textbox, pero no me manda nada ni error siquiera.
Pensé en hacerlo por programación, hacer que recorra los registros y los que encuentre con la misma combinacion "conjunto-componente" sume la cantidad. Pero no sé cómo hacerlo.
Hice una consulta en Access, sale bien, pero no sé cómo juntarlo en la consulta que genera al formulario.
Cualquiera de los métodos que se pueda usar y un ejemplo para adaptar, envíenlo y traten de explicarlo porque aún soy bastante nueva en esto, mi correo es:
marisol_ylonen@yahoo.com.mx
Cualquier respuesta es bienvenida, gracias
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
[size=109]El hombre no se rinde a los angeles ni a la muerte por entero salvo a través de la flaqueza de su débil voluntad. Edar A. Poe, "Ligeia".Joseph Glanville[/size]

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Suma
« Respuesta #1 en: Viernes 29 de Junio de 2007, 03:31 »
0
strSQL = "SELECT Sum(PLANEACION.LSLGBE) AS SumaDeLSLGBE FROM PLANEACION GROUP BY PLANEACION.STBGNR" = Texto31

tal vez si le quitas la ultima parte de = texto31 funcionaria, y si no usa el debug para ver que valor tiene strSQL y postealo porfas.
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

marisol_ylonen

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Suma
« Respuesta #2 en: Viernes 29 de Junio de 2007, 15:17 »
0
hola!
Pues tiene esto: srtSQL=""
Y si asigno el alias, o sea el nombre que toma la suma, al texto31, texto31 tiene valor nulo.
Todo lo que necesito es hacer que el resultado del strSQL se vea en el textbox al momento de ejecutar.
Gracias de nuevo, son unos amores :hola:
[size=109]El hombre no se rinde a los angeles ni a la muerte por entero salvo a través de la flaqueza de su débil voluntad. Edar A. Poe, "Ligeia".Joseph Glanville[/size]

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Suma
« Respuesta #3 en: Viernes 29 de Junio de 2007, 22:05 »
0
Citar
Todo lo que necesito es hacer que el resultado del strSQL se vea en el textbox al momento de ejecutar.

hola  :hola:

Yo tuve esa misma cuestion y pude resolverlo gracias a las consultas dadas aqui en solocodigo, el post era algo largo y inicialmente trataba sobre una cuestion y luego paseo a esto mismo que necesitas, yo pongo un codigo, la suma ya la tienes en el Alias del campo, y si solo necesitas mostrar eso en un Text pues te serviria asi, por ejemplo:

Este es tu alias del campo: SumaDeLSLGBE entonces...

Código: Text
  1.  
  2.     Dim SumaResult As Double
  3.     With Rs
  4.         While Not .EOF
  5.             SumaResult = SumaResult + Val(![SumaDeLSLGBE])
  6.             .MoveNext
  7.         Wend
  8.     End With
  9.     Text31.Text = SumaResult
  10.  
  11.  

Por ahí va la cosa, para mostrar en un Text un campo o Alias de un Query SQL pues recoges el dato entre (![dato_sql]) sea Val(![ ]) o CDbl(![ ]), es decir, sea el caso de dato Intenger, Double, etc.

Si el Query no se trae nada y el Alias está vacio pues tal vez tengas que frenar el codigo antes de pasar por ahi o validar algo asi o sino dara error de null.

Luego del While:
Código: Text
  1.  
  2. While Not .EOF
  3.     If IsNumeric(![SumaDeLSLGBE])=Flase Then
  4.         Exit Sub
  5.     Else
  6.         SumaResult = SumaResult + Val(![SumaDeLSLGBE])
  7.     End If
  8.     .MoveNext
  9. Wend
  10.  
  11.  

ojala y te sirva :hola:
Si esto es Leído por accidente, induzca al vomito

marisol_ylonen

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Suma
« Respuesta #4 en: Sábado 30 de Junio de 2007, 00:42 »
0
Hola! :hola:
Cómo decirte que estoy muy agradecida contigo. Ya me estba resignando y le estaba buscando por otro lado. Funciona de maravilla. Sólo una pregunta más, no sé si sea por mi query, hace la suma total de las cantidades de todos los registros?
Este es el sql que le metí:
strSQL = "SELECT Sum(PLANEACION.LSLGBE) AS SumaDeLSLGBE FROM PLANEACION GROUP BY PLANEACION.STBGNR"
Yo pensé que cambiaría la cantidad según el conjunto, porque eso es lo que hace el query si lo ejecuto como consulta, pero con el código parece mandarme la suma total, no solo de los que repitan la combinación STBGNR y STKOMP.
Bueno, contestasté mi primer pregunta.
Muchas gracias porque creo que a muchos nos servirá.
Hasta luego y que sigas tan iluminado y dispuesto a contestar a los que no nos rifamos tanto. :kicking:
[size=109]El hombre no se rinde a los angeles ni a la muerte por entero salvo a través de la flaqueza de su débil voluntad. Edar A. Poe, "Ligeia".Joseph Glanville[/size]

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Suma
« Respuesta #5 en: Sábado 30 de Junio de 2007, 01:37 »
0
Citar
strSQL = "SELECT Sum(PLANEACION.LSLGBE) AS SumaDeLSLGBE FROM PLANEACION
GROUP BY PLANEACION.STBGNR"

Si, esa SQL hace una Suma de ese campo de todos los registros de la tabla, para que la SQL solo agarre los registros que en particular se desean y no todos, pues habria que ponerle un WHERE por ejemplo, un Where con un campo o dato que solo tengan esos registros, ahorita no me viene a la mente alguna Clausula en especial o particular de SQLs, ya sabes que las SQLs son un lenguaje largo y al menos yo no he trabajado SQLs con todas las clausulas o funciones que la complementan (nota: acordarme de comprarme un libro de SQLs)
SELECT Sum(PLANEACION.LSLGBE) AS SumaDeLSLGBE FROM PLANEACION WHERE Campo='dato'

Ya encontre el post con el que yo tuve los mismos problemas, te pongo el link tal vez entre taaanta sintaxis de SQL esté algo que te pueda servir, veras que al final del largo post yo estaba con el dilema de como sacar un dato de una SQL y ponerla en un Text puesto que lo hacia siempre la SQL completa a un grid, MSFlexgrid por ejemplo

Esta bien ilustrado todo ahi   :)
Post sobre problemas en SQL, la novela con capitulo final y todo  :P

Cualquier cosa, de ser posible indica todos los campos de la tabla, tal vez pueda haber un campo clave para el WHERE de la SQL y pueda verse mejor la panoramica de la consulta planificada. Aqui hay gente que son expertos en SQLs y no me refiero a mi, cualquier cosa por aqui estamos  :hola:
Si esto es Leído por accidente, induzca al vomito

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Suma
« Respuesta #6 en: Sábado 30 de Junio de 2007, 07:51 »
0
Cita de: "marisol_ylonen"
Sólo una pregunta más, no sé si sea por mi query, hace la suma total de las cantidades de todos los registros?
Este es el sql que le metí:
strSQL = "SELECT Sum(PLANEACION.LSLGBE) AS SumaDeLSLGBE FROM PLANEACION GROUP BY PLANEACION.STBGNR"
Yo pensé que cambiaría la cantidad según el conjunto, porque eso es lo que hace el query si lo ejecuto como consulta, pero con el código parece mandarme la suma total, no solo de los que repitan la combinación STBGNR y STKOMP.
pues deberias agrupar por los dos campos

<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] Sum(PLANEACION.LSLGBE) AS SumaDeLSLGBE FROM PLANEACION GROUP BY PLANEACION.STBGNR,PLANEACION.STKOMP <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->

Eso te daria la suma de cada grupo donde coincidan STBGNR y STKOMP (y puede contener mas de un registro, segun la cantidad de grupos),

eso es lo que quieres mostrar en el textbox? (si son mas de un registro tendrias que usar otro componente ¿no? como un DataGrid)

o quieres obtener la suma total por grupos? (el codigo que te a enviado UserCode)


si lo que quieres es obtener un grupo en especifico tienen que indicarle el WHERE como te lo menciona UserCode

Por ejemplo
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>SQL </td></tr><tr><td id='CODE'><!--sql1-->[color=blue;font-weight]SELECT[/color] Sum(PLANEACION.LSLGBE) AS SumaDeLSLGBE FROM PLANEACION WHERE PLANEACION.STBGNR='014' and PLANEACION.STKOMP='015'
GROUP BY PLANEACION.STBGNR,PLANEACION.STKOMP <!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->


Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

marisol_ylonen

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Suma
« Respuesta #7 en: Lunes 2 de Julio de 2007, 03:31 »
0
muchas gracias, en cuanto llegue mañana a mi trabajo, voy a intentarlo porque todo lo tengo allá y les cuento qué pasó. :comp:
Y si sigo sin entender, creo que voy a seguir dándoles lata. Qué tengan un buen día!
Son verdaderamente unos amores, gracias! :hola:
[size=109]El hombre no se rinde a los angeles ni a la muerte por entero salvo a través de la flaqueza de su débil voluntad. Edar A. Poe, "Ligeia".Joseph Glanville[/size]