Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Como implementar UPDATE() y SUM() ?

Estas en el tema de ¿Como implementar UPDATE() y SUM() ? en el foro de .NET en Foros del Web. Amigos una vez más los vengo a molestar con mis preguntas, tengo una tabla llamada detalle_factura en esta hay tres campos: Cita: ---------------------------------------------------------------------------- |**cantidad_producto**|**valor_producto**|**total_ producto** ...
  #1 (permalink)  
Antiguo 05/07/2010, 11:10
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
¿Como implementar UPDATE() y SUM() ?

Amigos una vez más los vengo a molestar con mis preguntas, tengo una tabla llamada detalle_factura en esta hay tres campos:
Cita:
----------------------------------------------------------------------------
|**cantidad_producto**|**valor_producto**|**total_ producto**
----------------------------------------------------------------------------
necesito primero multiplicar la cantidad de productos por el precio, lo que he hecho es que saco del campo producto el precio y la cantidad, multiplico estos dos y por ultimo pienso actualizar el campo total_producto con el resultado de la multiplicación.

El primer problema es que no se como usar UPDATE en visual basic y por ultimo tendré que sumar toda la columna total_producto.
El segundo porblema es que no se como implementar SUM() no se si deba hacer
Cita:
"select sum(total_producto)"
Ejemplo:

Cita:
----------------------------------------------------------------------------
|**cantidad_producto**|**valor_producto**|**total_ producto**
----------------------------------------------------------------------------
|***********2**********|*******1500*******|******3 000*******
----------------------------------------------------------------------------
Agradezco como siempre su ayuda

Nota: se que para actualizar es UPDATE tabla SET campo=****** done **** es el valor que contendrá.
  #2 (permalink)  
Antiguo 05/07/2010, 11:40
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Hola easolano5

El update lo puedes hacer de la siguiente manera:

Código vb:
Ver original
  1. UPDATE " tabla " SET "campo_a_modificar " = "nuevo_valor " WHERE " & condicion

El sum de la siguiente manera para evitar errores:

Código vb:
Ver original
  1. SELECT ISNULL(SUM(" columna"),0) FROM " tabla " WHERE " & condicion

Ahora bien nose si donde dices que no sabes como hacerlo en vb te refieres a la ejecución de estos comandos o si tu problema esta en la creación de dichos comandos (querys).

De ser la primera opción te agrego esto.

Para el Update:

Código vb:
Ver original
  1. Public Sub EjecutarQuery(ByVal sql As String, ByVal objConn As SqlConnection)
  2.  
  3.         Dim cmd As System.Data.SqlClient.SqlCommand
  4.         cmd = New System.Data.SqlClient.SqlCommand()
  5.         cmd.Connection = objConn
  6.         cmd.CommandText = sql
  7.         cmd.ExecuteNonQuery()
  8.  
  9.     End Sub

Para el Sum:

Código vb:
Ver original
  1. Public Function EjecutarEscalar(ByVal sql As String, ByVal objConn As SqlConnection)
  2.  
  3.         Dim total As Double
  4.  
  5.         Dim cmd As System.Data.SqlClient.SqlCommand
  6.         cmd = New System.Data.SqlClient.SqlCommand()
  7.         cmd.Connection = objConn
  8.         cmd.CommandText = sql
  9.         total = cmd.ExecuteScalar
  10.  
  11.         Return total
  12.  
  13.     End Function

Pueden existir distintas formas pero yo utilizo las mencionadas anteriormente.

Espero y te sirvan, Saludos!
  #3 (permalink)  
Antiguo 05/07/2010, 11:47
Avatar de atak  
Fecha de Ingreso: julio-2005
Ubicación: Huancayo
Mensajes: 490
Antigüedad: 18 años, 9 meses
Puntos: 5
De acuerdo ¿Como implementar UPDATE() y SUM() ?

Hola,

puedes usar la siguiente sentencia :


Código PHP:

UPDATE detalle_factura  set  total_ producto
=cantidad_producto*valor_producto  where ("CONDICION"
Saludos.
__________________
. .: El mejor Inicio :. .
  #4 (permalink)  
Antiguo 05/07/2010, 11:53
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Gracias por responder probaré ambas, y habia olvidado mencionar que estoy usando visual basic 2008 y mysql, aún así probaré hasta que funcione.
  #5 (permalink)  
Antiguo 05/07/2010, 12:53
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Ok, ahora que mencionas que utilizas MySql tendras que cambiar algunas cosas de las que te puse, por ejemplo:

Código vb:
Ver original
  1. 'SQL Server
  2. objConn As SqlConnection
  3. cmd = New System.Data.SqlClient.SqlCommand()
  4. 'MySql
  5. objConn As MySql.Data.MySqlClient.MySqlConnection
  6. cmd = New MySql.Data.MySqlClient.MySqlCommand()

Esto porque la tanto la función como el método que te puse son para Sql Server.
  #6 (permalink)  
Antiguo 05/07/2010, 14:23
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Cita:
UPDATE " tabla " SET "campo_a_modificar " = "nuevo_valor " WHERE " & condicion
mira lo que hice:

Cita:
Dim insertar3 As New MySqlDataAdapter("UPDATE detalle_facturas SET total_producto='" & total &"' WHERE nombre_producto_factura='" & NombreProd & "')", conexion)
Dim comando3 As New MySqlCommandBuilder(insertar3)
Dim midataset3 As New DataSet
Try
insertar3.Fill(midataset3, "detalle_facturas")
MsgBox("Los datos se actualizaron correctamente.", MsgBoxStyle.Information)
Catch ex As MySqlException
MsgBox("No se pudo realizar la actualización.", MsgBoxStyle.Critical)
MsgBox(ex.Message.ToString())
Finally
conexion.Dispose()
End Try
total es una variable que tiene la multiplicación de cantidad de productos y el precio de ese producto, pero no me hace la operación.

Cita:
UPDATE detalle_factura set total_ producto=cantidad_producto*valor_producto where ("CONDICION")
Este lo implementé pero tampoco funciona.

¿Cómo hago en este caso?

Última edición por easolano5; 05/07/2010 a las 14:28
  #7 (permalink)  
Antiguo 05/07/2010, 16:05
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Probando si escribo esto en phpmyadmin
Cita:
update detalle_facturas set total_producto=cantidad_producto_factura*valor_pro ducto_factura where id_detalle=1
hace la operación exacta, en visual basic intento hacerlo igual y no me resulta.

Y si quiero hacer esto en visual basic tampoco funciona ¿qué hago mal?
Cita:
update detalle_facturas set total_producto=cantidad_producto_factura*valor_pro ducto_factura where id_detalle=(SELECT(Max(id_detalle)))
Como debo plantear la eso en visual basic.net
  #8 (permalink)  
Antiguo 05/07/2010, 20:26
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Cita:
Dim actualiza As New MySqlCommand("UPDATE detalle_facturas SET total_producto=ROUND(cantidad_producto_factura*val or_producto,2) WHERE id_detalle=(SELECT(Max(id_detalle)))", conexion)

actualiza.Connection.Open()
actualiza.ExecuteNonQuery()
MsgBox("Los datos se actualizaron correctamente.", MsgBoxStyle.Information)
Hago eso y aún no hay actualización a través de visual basic
  #9 (permalink)  
Antiguo 05/07/2010, 21:07
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Cita:
'****************************************
' ACTUALIZANDO DATOS AL DETALLE FACTURA
'****************************************

Dim actualizado As New MySqlCommand
Try
actualizado.Connection = conexion
actualizado.CommandText = ("UPDATE detalle_facturas SET total_producto=cantidad_producto_factura*valor_pro ducto_factura WHERE id_detalle=(SELECT(Max(id_detalle)))")
conexion.Open()
actualizado.ExecuteNonQuery()
MsgBox("El registro fue actualizado", MsgBoxStyle.Exclamation)
Catch ex As MySqlException
MsgBox("No se logró actualizar el registro", MsgBoxStyle.Critical)

'-----------------------------------------
End Try
Ya esta actualizando datos jeje funciona de maravilla luego vuelvo con noticias del SUM() voy a dormir porque esto me dejo cansado pero aprendi mucho, mañan regreso con noticias.
  #10 (permalink)  
Antiguo 05/07/2010, 22:06
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Hola easolano5

Practicamente llegaste a lo que te propuse la primera vez solo que como te comentaba que adaptaras los comandos para MySql, dichas funciones funcionan a la perfección porque yo actualmente las estoy utilizando.

Saludos!
  #11 (permalink)  
Antiguo 06/07/2010, 05:54
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Si hombre gracias ahora tengo otra dificultad, resulta que tengo otra tabla la anterior se llama detalle_factura
Cita:
--------------------------------------------------------------------------
|**cantidad_producto**|**valor_producto**|**total_ producto**
--------------------------------------------------------------------------
|***********2**********|*******1500*******|******3 000*******
--------------------------------------------------------------------------
y tengo otra llamada encabezado_factura en la cual hay un campo llamado total_factura las dos tablas tienen un campo registro en comun, el numero_factura que es la relacion entre estas dos.

si yo hago esto:
Cita:
SELECT sum( total_producto )
FROM `detalle_facturas`
WHERE numero_factura =32
me arroja el valor exacto suma la columna total_producto donde el numero de factura es igual a la condicion que le coloque.

Ahora quiero saber dos cosas:

1. ¿Como podria yo asignarle a un textbox o a una variable que esté en un modulo ese valor?

2. como actualizo el campo total_Factura de la tabla encabezado_factura con el valor del sum( total_producto )
FROM `detalle_facturas`
WHERE numero_factura =condicion


3. Si creo otro campo en detalle_factura que conteng la suma tota de los productos donde el numero de factura sea = condicion

podria ejectuar esto?
Cita:
UPDATE detalle_facturas SET total_productos_factura = ( SELECT (
sum( total_producto )
FROM detalle_facturas )
)
WHERE numero_factura = (
SELECT (
Max( numero_factura ) )
)

o simplemente como le asigno a una variable esta consulta:
Cita:
SELECT sum( total_producto )
FROM `detalle_facturas`
WHERE numero_factura = (
SELECT (
Max( numero_factura ) )
)
Gracias

Última edición por easolano5; 06/07/2010 a las 07:16
  #12 (permalink)  
Antiguo 06/07/2010, 08:44
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 2 meses
Puntos: 37
Respuesta: ¿Como implementar UPDATE() y SUM() ?

Hola easolano5

1. ¿Como podria yo asignarle a un textbox o a una variable que esté en un modulo ese valor?

Bueno en este caso primeramente puedes crear un modulo, dentro del modulo declaras la variable tipo public que quieres que guarde dicho resultado de la consulta. Por ejemplo si se llama MiVariable

Código vb:
Ver original
  1. MiVariable =  EjecutarEscalar(Instruccion_SQL, objConn)

Donde la función EjecutarEscalar ya la tienes.
Para el TextBox pues seria lo mismo:

Código vb:
Ver original
  1. MiTextBox.Text = MiVariable

2. como actualizo el campo total_Factura de la tabla encabezado_factura con el valor del sum( total_producto )

Aquí primero asignas a una variable el resultado del sum como lo hice en el punto 1, después en tu Instruccion SQL del UPDATE haces esto:

Código vb:
Ver original
  1. actualizado.CommandText = ("UPDATE detalle_facturas SET total_producto= " & MiVariable & " *valor_pro ducto_factura WHERE id_detalle=(SELECT(Max(id_detalle)))")

Y en el punto 3 me inclino mas por la segunda opción de asignarle el valor a una variable.
  #13 (permalink)  
Antiguo 06/07/2010, 17:29
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años
Puntos: 0
Solucionado

Hola gracias mira hice esto para extraer en una variable el dato qeu queria:

Cita:
Dim consulta2 As New MySqlCommand
Try
consulta2.Connection = conexion
consulta2.CommandText = ("select cantidad_producto from productos where nombre_producto='" & NombreProd & "'")
conexion.Open()
pCantidad = consulta2.ExecuteScalar()
MsgBox("ok al extraer" & pCantidad, MsgBoxStyle.Exclamation)
Catch ex As MySqlException
MsgBox("No extrajo", MsgBoxStyle.Critical)
para actualizar el campo hice otra cosa pero gracias por las respuestas este tema quedo solucionado, me ha tocado leer el manual de referencia de mysql que está en "spanglish" jeje al menos el que yo tengo.

Etiquetas: implementar, sum, update
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 04:04.