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

Update y Sum a la vez

Estas en el tema de Update y Sum a la vez en el foro de Bases de Datos General en Foros del Web. Tengo una tabla con dos campo campo1 campo2 1 3 4 y quiero obtener campo1 campo2 1 1 3 4 4 8 Alguien me puede ...
  #1 (permalink)  
Antiguo 05/02/2009, 13:19
 
Fecha de Ingreso: mayo-2008
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Update y Sum a la vez

Tengo una tabla con dos campo
campo1 campo2
1
3
4
y quiero obtener
campo1 campo2
1 1
3 4
4 8
Alguien me puede ayudar con la instruccion sql?
gracias
  #2 (permalink)  
Antiguo 05/02/2009, 13:23
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Update y Sum a la vez

A ver si te sirve asi:
Código sql:
Ver original
  1. SELECT t1.campo1,t1.campo1+SUM(CASE WHEN t2.campo1 IS NULL THEN 0 ELSE t2.campo1 END)
  2. FROM tabla t1
  3. LEFT JOIN tabla t2 ON t1.campo1>t2.campo1
  4. GROUP BY t1.campo1
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Última edición por flaviovich; 05/02/2009 a las 14:21
  #3 (permalink)  
Antiguo 05/02/2009, 13:54
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 20 años, 2 meses
Puntos: 6
Respuesta: Update y Sum a la vez

al parecer vas sumando el campo 1
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #4 (permalink)  
Antiguo 05/02/2009, 15:22
 
Fecha de Ingreso: mayo-2008
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Update y Sum a la vez

Cita:
Iniciado por Thumper Ver Mensaje
al parecer vas sumando el campo 1
efectivamente se trata de ir sumando el campo1, por eso el titulo pues yo pretendia hacerlo con
UPDATE tabla set campo2 = sum(campo1)
pero esto no funciona. Luego ciertamente se complica mas pues tengo que agrupar los resultados, me refiero a que tendria una estructura asi más o menos
campo1 campo2 camp3(sumas)
1 - 2 - 2
1 - 3 - 5
2 - 8 - 8
3 - 13 - 13
1 - 1 - 6
2 - 3 - 11
quiero rellenar el campo 3
gracias a todos
  #5 (permalink)  
Antiguo 05/02/2009, 15:24
 
Fecha de Ingreso: mayo-2008
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Update y Sum a la vez

Cita:
Iniciado por miggim Ver Mensaje
efectivamente se trata de ir sumando el campo1, por eso el titulo pues yo pretendia hacerlo con
UPDATE tabla set campo2 = sum(campo1)
pero esto no funciona. Luego ciertamente se complica mas pues tengo que agrupar los resultados, me refiero a que tendria una estructura asi más o menos
campo1 campo2 camp3(sumas)
1 - 3 - 5
2 - 8 - 8
3 - 13 - 13
1 - 1 - 6
2 - 3 - 11
quiero rellenar el campo 3 con la suma del campo2 para cada registro distinto del campo1
gracias a todos
  #6 (permalink)  
Antiguo 05/02/2009, 16:17
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 20 años, 2 meses
Puntos: 6
Respuesta: Update y Sum a la vez

Lo que puso Flaviovich sirve para tu primer post, para el q colocaste luego no entiendo muy bien como va calculando el campo3, no le encuentro relacion alguna.

saludos
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #7 (permalink)  
Antiguo 06/02/2009, 12:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Update y Sum a la vez

Cita:
Iniciado por Thumper Ver Mensaje
Lo que puso Flaviovich sirve para tu primer post, para el q colocaste luego no entiendo muy bien como va calculando el campo3, no le encuentro relacion alguna.

saludos
el problema que trato de solucionar es el siguiente....
Son un grupo de trabajadores identificados por el dNI (campodni) que todos los dias (campofecha) entran y salen de la empresa una o varias veces, cada vez que lo hacen acumulan un tiempo trabajado en minutos (campotiempotrabajado). Lo que quiero es ir rellenando un campo con el total del tiempo acumulado cada dia a medida que fichan (campotiempoacumulado) para cada trabajador.
gracias a todos
  #8 (permalink)  
Antiguo 07/02/2009, 02:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Update y Sum a la vez

miggim,
¿para qué almacenar un dato que siempre podrás generar?
Es decir, tú, mediante una consulta como esta, podrías conseguirlo en cualquier momento:
SELECT nombre_trabajador, fecha, sum(hora) totalhoras FROM tabla GROUP BY fecha, id_trabajador

o algo así.
En realidad, no sé cómo tienes hora, si como numérico o campo TIME. He pensado que como numérico, por eso el SUM.
  #9 (permalink)  
Antiguo 01/11/2009, 17:58
 
Fecha de Ingreso: mayo-2008
Mensajes: 38
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Update y Sum a la vez

Cita:
Iniciado por jurena Ver Mensaje
miggim,
¿para qué almacenar un dato que siempre podrás generar?
Es decir, tú, mediante una consulta como esta, podrías conseguirlo en cualquier momento:
SELECT nombre_trabajador, fecha, sum(hora) totalhoras FROM tabla GROUP BY fecha, id_trabajador

o algo así.
En realidad, no sé cómo tienes hora, si como numérico o campo TIME. He pensado que como numérico, por eso el SUM.
Perdon ante todo por no contestar antes pero por problemas no he podido retomar el programa hasta ahora. Lo que pretendo en todo caso es almacenar la información en una tabla que llamo ultimosfichajes que en ultima instancia he de exportar en principio a una hoja excell. Es por eso que me interesa la consulta tal y como la he planteado con update y sum a la vez
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 14:39.