none
sumar cantidades según la Orden RRS feed

  • Pregunta

  • hola a todos 

    tengo este código, y lo que requiero es que cuando el usuario indique un numero de orden que ya esta cargado en sistema, buscar en mi base de datos y si si esta en la base de datos suma todos los resultado y si no esta tener los resultados en blanco 

     try
                    {
    
                        comando.Connection = conexion;
                        conexion.Open();
                        string SqlAction = "select A.ItemName,A.MENGE,B.SalPackUn,B.PicturName  from BEAS_FTPOS A Inner Join OITM B on A.ItemCode = B.ItemCode WHERE BELNR_ID = @BELNR_ID ";
                        // "SELECT MOLDE, PROYECTO, ITEMPARTE, COLOR, SNP FROM PARTE WHERE ITEMPARTE = @ITEMPARTE";
                        SqlCommand cmd = new SqlCommand(SqlAction, conexion);
                        cmd.Parameters.AddWithValue("@BELNR_ID", TXTORDEN_PRODUCCION.Text);
                        // SqlDataReader dr = cmd.ExecuteReader();
                        // if (dr.Read()) ;
                        DataSet ds = new DataSet();
                        DataTable dt = ds.Tables.Add();
                        
                            conexion.Close();
                        }
    
    
                    }
                    catch (Exception Ex)
                    {
                        MessageBox.Show(Ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                    }
                }

    viernes, 21 de octubre de 2016 20:04

Respuestas

  • muchas gracias ya tengo el codigo 

     {
                    try
                    {
                        com.Connection = cn;
                        cn.Open();
                        string SqlAction = "select sum(totalpiezasok) from conteo2 where orden = @orden GROUP BY orden,articulo order by articulo ";
                        SqlCommand cmd = new SqlCommand(SqlAction, cn);
                        cmd.Parameters.AddWithValue("@orden", TXTORDEN_PRODUCCION.Text);
                        DataSet ds = new DataSet();
                        DataTable dt = ds.Tables.Add();
                       {
                            cmd.ExecuteNonQuery();
                            SqlDataAdapter dr = new SqlDataAdapter(cmd);
                            dr.Fill(dt);
                            if (dt.Rows.Count >= 1)
                            {
                                TXTTOTAL1.Text = Convert.ToString(dt.Rows[0][0]);
                            }
    
                            if (dt.Rows.Count >= 2)
                            {
                                TXTTOTAL2.Text = Convert.ToString(dt.Rows[1][0]);
                            }
    
                            if (dt.Rows.Count >= 3)
                            {
                                TXTTOTAL3.Text = Convert.ToString(dt.Rows[2][0]);
                            }
    
                            if (dt.Rows.Count >= 4)
                            {
                                TXTTOTAL4.Text = Convert.ToString(dt.Rows[3][0]);
                            }
                            cn.Close();
                        }
    
                    }
                    catch (Exception Ex)
                    {
                        MessageBox.Show(Ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                    }
    
                }

    • Marcado como respuesta HARIEKZ lunes, 24 de octubre de 2016 14:03
    lunes, 24 de octubre de 2016 13:56

Todas las respuestas

  • Hola,

    ¿Podrías poner una imagen del resultado obtenido por la consulta? No logro entender muy bien la sentencia, no aprecio una columna que obtenga cantidades.

    De todas formas, puedes usar la clausula SUM() y luego GROUP BY para obtener el resultado deseado.


    Antonio Mata

    viernes, 21 de octubre de 2016 20:09
  • HARIEKZ,

    ¿Qué resultados deseas sumar? ¿Dónde escribirás el valor resultante?

    Te recomiendo amplíes el detalle de tu requerimiento.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 21 de octubre de 2016 20:25
  • ten una base de datos donde esto acumulando todos mis pedidos, según la orden 

    en mi desarrollo tengo un textbox en el cual coloco algún numero y tengo un checkbox el cual es el activado 

    al momento de yo presionar el checkbox me va abrir mi captura pero también va buscar en mi base de datos si encuentra una orden ya cargada me va a mandar la suma de la cantidad de esa orden a un textbox llamado total de la orden. 

    viernes, 21 de octubre de 2016 20:52
  • Tu código no hace nada de todo eso, en realidad no hace nada, pero tampoco es fácil de entender que preguntas o que quieres.

    ejemplo

    "ten una base de datos donde esto acumulando todos mis pedidos, según la orden"

    Seguro que cuando lo escribiste tenía mucho sentido para ti, pero piensa que nosotros.... no leemos tu mente :) (disculpa el sarcasmo)

    ¿tengo una base de datos?

    donde estoy acumulando?

    que quieres decir por acumulando, que guardas los pedidos? que tienes un resumen de los acumulados?

    según la orden? según la orden de alguien, según un orden en concreto? según alguien que lo ordena

    te refieres a que esté ordenado o a que?

    La explicación que das después aún me lía mas, pones un query "relativamente complejo" con un join y todo, pero ahora pones un código, que no ejecuta nada. la parte de leer con datareader la tienes comentada, la parte de usar filll para rellenar un dataset, no existe.  ¿Dónde está realmente tu problema?

    si es en generar el código .NET? coméntanoslo y te muevo el hilo a un grupo de desarrollo

    si es en construir el query SQL que responda a tus necesidades, dinos que quieres, cual es la estructura de tablas y te contestamos con gusto

    Disculpa si mi tono parece "enfadado", no lo es en absoluto, solo quiero hacerte ver que para poder ayudarte, debes dejarnos hacerlo. Para eso, lo mejor es que intentes explicarnos las cosas de forma ordenada, con ejemplos, para que entendamos cual es realmente el milímetro que te falta para obtener un éxito en esta parte.


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    lunes, 24 de octubre de 2016 1:48
    Moderador
  • muchas gracias ya tengo el codigo 

     {
                    try
                    {
                        com.Connection = cn;
                        cn.Open();
                        string SqlAction = "select sum(totalpiezasok) from conteo2 where orden = @orden GROUP BY orden,articulo order by articulo ";
                        SqlCommand cmd = new SqlCommand(SqlAction, cn);
                        cmd.Parameters.AddWithValue("@orden", TXTORDEN_PRODUCCION.Text);
                        DataSet ds = new DataSet();
                        DataTable dt = ds.Tables.Add();
                       {
                            cmd.ExecuteNonQuery();
                            SqlDataAdapter dr = new SqlDataAdapter(cmd);
                            dr.Fill(dt);
                            if (dt.Rows.Count >= 1)
                            {
                                TXTTOTAL1.Text = Convert.ToString(dt.Rows[0][0]);
                            }
    
                            if (dt.Rows.Count >= 2)
                            {
                                TXTTOTAL2.Text = Convert.ToString(dt.Rows[1][0]);
                            }
    
                            if (dt.Rows.Count >= 3)
                            {
                                TXTTOTAL3.Text = Convert.ToString(dt.Rows[2][0]);
                            }
    
                            if (dt.Rows.Count >= 4)
                            {
                                TXTTOTAL4.Text = Convert.ToString(dt.Rows[3][0]);
                            }
                            cn.Close();
                        }
    
                    }
                    catch (Exception Ex)
                    {
                        MessageBox.Show(Ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                    }
    
                }

    • Marcado como respuesta HARIEKZ lunes, 24 de octubre de 2016 14:03
    lunes, 24 de octubre de 2016 13:56