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

"Sumar datos de un solo campo"

Estas en el tema de "Sumar datos de un solo campo" en el foro de Bases de Datos General en Foros del Web. Hola a todos de nuevo, tengo un problema con una consulta. Miren mi tabla esta asi: Material--------Lingote--------ColadasNecesarias 9840------------12----------------2 9840------------12----------------3 4340------------12----------------1 H12-------------12----------------4 El punto es que ...
  #1 (permalink)  
Antiguo 14/07/2011, 11:35
 
Fecha de Ingreso: mayo-2011
Ubicación: Toluca
Mensajes: 115
Antigüedad: 13 años
Puntos: 2
"Sumar datos de un solo campo"

Hola a todos de nuevo, tengo un problema con una consulta. Miren mi tabla esta asi:

Material--------Lingote--------ColadasNecesarias
9840------------12----------------2
9840------------12----------------3
4340------------12----------------1
H12-------------12----------------4


El punto es que tengo que sumar todas las coladas que pertenescan a el mismo tipo de material. Algo asi deberia quedarme el resultado:

Material----------Total
9840-------------5
4340-------------1
H12--------------4

Porfavor ayudenme es muy importante que termine esto maximo mañana porfavoooooor
  #2 (permalink)  
Antiguo 14/07/2011, 15:26
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: "Sumar datos de un solo campo"

Hola patiurco:

Trataste siquiera de buscar en google o en cualquier manual de SQL cómo hacer una suma... esta es una consulta básica, por lo que me extraña encontrarla en un foro.

Siempre he insistido que el foro debería ser la última opción para un problema, es decir, primero tendrías que revisar la documentación del motor de BD que estés utilizando o podrías preguntarle a San Google a San Yahoo, también en este foro existe una herramienta de búsqueda que podría darte la respuesta... Si después de agotar todos estos recursos sigues sin encontrar la respuesta entonces si podrías abrir un nuevo tema. Mucho ojo con eso para la próxima.

Lo único que tienes que hacer es un SUM (ColadasNecesarias) y agrupar tus por tus campos Material y Lingote, ¿parece difícil?, no lo creo, checa cualquiera de estas ligas para obtener la sintaxis correcta.

http://www.monografias.com/trabajos1...q/prosq2.shtml

http://dev.mysql.com/doc/refman/5.0/...modifiers.html

http://msdn.microsoft.com/es-es/library/ms187810.aspx

Saludos
Leo.
  #3 (permalink)  
Antiguo 18/07/2011, 08:00
 
Fecha de Ingreso: mayo-2011
Ubicación: Toluca
Mensajes: 115
Antigüedad: 13 años
Puntos: 2
Respuesta: "Sumar datos de un solo campo"

Hola Leonardo Josue, muchas gracias por contestar, de echo es bastante sencillo, tal y como lo dices yo ya lo conocia, ya que como lo mencionas, es algo realmente basico en sql, pero no es exactamente una suma asi de sencilla.

Mira tengo la siguiente tabla:

OTsCriticas
Material,criticidad,estado......

Lo que me interesa de esta tabla es extraer los campos: Material,Lingote y ColadasNecesarias
Pero al hacer la suma lo que necesito que me sume es coladasNecesarias, conforme a tipo de lingote y el material con el que lleno dicho lingote.

Mira un ejemplo, y espero puedas ayudarme todavia.

Material--------Lingote--------ColadasNecesarias
d11-------------8*8-------------5
d12-------------8*8-------------6
d12-------------8*8-------------4
d13-------------12''--------------3
d11-------------12''--------------8

Al sumar esto de manera agrupada tiene que darme como resultado lo siguiente:
Material--------Lingote--------TotalAgrupado
d11-------------8*8-------------5
d11-------------12''-------------8
d12-------------8*8-------------10
d13-------------12''-------------3

Obviamente yo tengo mas lingotes, y mas materiales, pero en resumen es esto lo que necesito y aun no e logrado obtener, podrias ayudarme?
  #4 (permalink)  
Antiguo 19/07/2011, 13:18
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: "Sumar datos de un solo campo"

Hola de nuevo patiurco

No entiendo dónde está el problema, supongo que leíste las información de las ligas que puse correcto, entonces me gustaría que nos pusieras algo del código que haz intentado hacer, si la consulta te da algún error pues postea también cuál es el error. En caso de que el error sea lógico, es decir que puedes ejecutar la consulta pero no obtienes el resultado esperado entonces publica el resultado que estás obteniendo para compararlo contra lo que quieres obtener y ayudarte a afinar la consulta.

Saludos
Leo.
  #5 (permalink)  
Antiguo 19/07/2011, 13:27
 
Fecha de Ingreso: octubre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: "Sumar datos de un solo campo"

Hola amigo si debes de revisar las faq pero te lo hare mas sencillito este es un codigo
Código PHP:
Ver original
  1. $consulta1="SELECT *, importe AS total FROM descuentos WHERE semana='$semana'  ";
  2.     $resultado1=mysql_query($consulta1) or die ('Ha Fallado la consulta : '  .mysql_error());    
  3.    
  4. while ($columnas1=mysql_fetch_array($resultado1)) {
  5.     extract ($columnas1);
  6.  
  7. $des2+=$total;
  8. $des2=number_format($des2,2);
  9. echo "<TH bgcolor='#336699' align=right>\$$des2</td>";
  10. }
solo modificalo con material y seldas soldadas con el where ahi especificas el material llevate variables ocultas saludos y mandame karma!!
  #6 (permalink)  
Antiguo 20/07/2011, 08:09
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: "Sumar datos de un solo campo"

Hola ingross:

Tienes razón al recomendar a patiurco que lea, no solo las FAQ, sino el foro en si, ya que muchas veces el mismo tema ya se ha posteado en otras ocasiones, sin embargo tengo que hacerte dos observaciones:

primero, no es recomendable que mezcles lenguajes de programación con SQL en este foro ya que se trata exclusivamente de problemas con Base de Datos, por lo tanto si tienes que incluir código deberá ser solo código SQL. Tu código funcionaría sólo si estás programando con PHP como lenguaje y MySQL como DBMS, pero te recuerdo que existen muchos lenguajes de programación (JAVA, .NET, Delphi, COBOL, FOX, etc) y muchos manejadores de BD (ORACLE, SQL Server, Firebird, etc.) cuando quieras tratar algún punto sobre algún lenguaje de programación en específico deberás hacerlo en su foro respectivo y lo mismo cuando se trate de un DBMS en específico, pero cuando se trate de este foro debes, en la medida de lo posible, ofrecer soluciones a nivel de SQL el cual puedas aplicar en cualquier lenguaje y a cualquier BD

segundo, es posible que tu código funcione (no puedo probarlo, pues nunca he trabajado con PHP), pero creo que no hay necesidad de hacer la sumatoria en el ciclo para poder obtener el resultado que patiarco necesita. Desde el select puedes hacer la agrupación de tal manera que el trabajo lo haga el motor de bd, que sería mucho más óptimo que lo que estás intentando hacer.

Esperemos los comentarios del patiarco.

Saludos
Leo.
  #7 (permalink)  
Antiguo 20/07/2011, 08:33
 
Fecha de Ingreso: mayo-2011
Ubicación: Toluca
Mensajes: 115
Antigüedad: 13 años
Puntos: 2
Respuesta: "Sumar datos de un solo campo"

Gracias por responder de nuevo a los 2 pero apenas hoy pude conectarme y ya he logrado obtener mi resultado deseado,el error que me daba era este: "Ha intentado ejecutar una consulta que no incluye la expresion especificada 'Nombre_campo' como parte de una funcion de agregado", la verdad aun no se a que se deba este error, no se si alguno de ustedes 2 pueda explicarmelo,esto me ocurre aun si es que quiero agregar otro campo extra y no le doy el group by, sera debido a eso: que tengo que agrupar todos los campos, porque de esta forma si me ejecuta la consulta.

Y si leo gracias a que lei uno de tus enlaces pude resolverlo, gracias mi consulta era bastante simple quedo asi:

Código SQL:
Ver original
  1. SELECT OTsCriticas.Material, OTsCriticas.Lingote, SUM(OTsCriticas.ColadasNecesarias) AS TotalxFundir
  2. FROM OTsCriticas
  3. GROUP BY OTsCriticas.Material, OTsCriticas.Lingote
  4. ORDER BY OTsCriticas.Material;

Pero como les digo si quiero agregar un campo extra debo agregarlo en el GROUP BY, porque de lo contrario me manda el error comentado anteriormente. Bueno pues unicamente espero puedan solucionarme mi duda de porque ese error?, y eso seria todo muchas gracias...
  #8 (permalink)  
Antiguo 20/07/2011, 09:46
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: "Sumar datos de un solo campo"

Hola de nuevo patiurco:

Antes que nada me da gusto que hayas podido obtener la consulta por tu propia cuenta, como te habrás dado cuenta no era muy difícil de obtener.

El error que mencionas, tal como lo infieres correctamente, se debe a que cuando colocas un campo en el SELECT que no forme parte de una función de agregación DEBE DE IR SIEMPRE EN EL GROUP BY. Si quieres incluir algún otro campo a tu select deberás incluirlo también en el GROUP BY aquí te dejo algunos ejemplos de selects correctos e incorrectos para ver si se entiende el porqué del error.

Código:
SELECT SUM(campo) FROM tabla
-> CORRECTO, porque no existe ningún campo sin funciones de agregación (COUNT, MIN, MAX, AVG, etc)

Código:
SELECT id, SUM(campo) FROM tabla GROUP BY id
-> CORRECTO: ya que id es un campo que no tiene asociada una función de agregación

Código:
SELECT SUM(campo) FROM table GROUP BY id
-->CORRECTO: En el select no existen campos sin función de agregación, pero si puedes usarlo en el GROUP BY

Código:
SELECT id, descripcion, SUM(campo) FROM tabla GROUP BY id 
--INCORRECTO: este creo que era más o menos tu caso, en el select el campo descripcion no tiene asociada ninguna función de agregacion por lo tanto se debe incluir en el GROUP BY.

Código:
SELECT id, descripcion, SUM(campo) FROM tabla GROUP BY id, descripcion
--CORRECTO: es finalmente como quedó tu consulta, agrupando por todos los campos que utilizas en el SELECT que no tengan función de agrupación.

Código:
SELECT id, MIN(descripcion), SUM(campo) FROM tabla GROUP BY id
--CORRECTO: a diferencia del ejemplo anterior el campo descripción SI TIENE ASOCIADA una función de agrupación, por lo tanto no es necesario que se incluya en el GROUP BY.

Hay algunas otras combinaciones, pero creo que con estos casos queda claro el por qué del error que te estaba marcando...

Saludos
Leo
  #9 (permalink)  
Antiguo 21/07/2011, 07:18
 
Fecha de Ingreso: mayo-2011
Ubicación: Toluca
Mensajes: 115
Antigüedad: 13 años
Puntos: 2
Respuesta: "Sumar datos de un solo campo"

Muchas muchas gracias leo ya quedo todo mas que comprendido, gracias de nuevo por tu atencion y hasta la proxima.
  #10 (permalink)  
Antiguo 21/07/2011, 08:22
 
Fecha de Ingreso: octubre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: "Sumar datos de un solo campo"

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola de nuevo patiurco:

Antes que nada me da gusto que hayas podido obtener la consulta por tu propia cuenta, como te habrás dado cuenta no era muy difícil de obtener.

El error que mencionas, tal como lo infieres correctamente, se debe a que cuando colocas un campo en el SELECT que no forme parte de una función de agregación DEBE DE IR SIEMPRE EN EL GROUP BY. Si quieres incluir algún otro campo a tu select deberás incluirlo también en el GROUP BY aquí te dejo algunos ejemplos de selects correctos e incorrectos para ver si se entiende el porqué del error.

Código:
SELECT SUM(campo) FROM tabla
-> CORRECTO, porque no existe ningún campo sin funciones de agregación (COUNT, MIN, MAX, AVG, etc)

Código:
SELECT id, SUM(campo) FROM tabla GROUP BY id
-> CORRECTO: ya que id es un campo que no tiene asociada una función de agregación

Código:
SELECT SUM(campo) FROM table GROUP BY id
-->CORRECTO: En el select no existen campos sin función de agregación, pero si puedes usarlo en el GROUP BY

Código:
SELECT id, descripcion, SUM(campo) FROM tabla GROUP BY id 
--INCORRECTO: este creo que era más o menos tu caso, en el select el campo descripcion no tiene asociada ninguna función de agregacion por lo tanto se debe incluir en el GROUP BY.

Código:
SELECT id, descripcion, SUM(campo) FROM tabla GROUP BY id, descripcion
--CORRECTO: es finalmente como quedó tu consulta, agrupando por todos los campos que utilizas en el SELECT que no tengan función de agrupación.

Código:
SELECT id, MIN(descripcion), SUM(campo) FROM tabla GROUP BY id
--CORRECTO: a diferencia del ejemplo anterior el campo descripción SI TIENE ASOCIADA una función de agrupación, por lo tanto no es necesario que se incluya en el GROUP BY.

Hay algunas otras combinaciones, pero creo que con estos casos queda claro el por qué del error que te estaba marcando...

Saludos
Leo
ups una disculpa, y pues esta muy buena esa explicación me confunci :S

Etiquetas: tabla, bases-de-datos
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 05:12.