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

Ayuda por favor.....necesito hacer operaciones entre filas en acces........

Estas en el tema de Ayuda por favor.....necesito hacer operaciones entre filas en acces........ en el foro de SQL Server en Foros del Web. Hola, estoy con un problema y me gustaria mucho que me ayuden por favor, estoy realizando la base de datos en acces, y para realizar ...
  #1 (permalink)  
Antiguo 20/10/2009, 14:37
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Sonrisa Ayuda por favor.....necesito hacer operaciones entre filas en acces........

Hola, estoy con un problema y me gustaria mucho que me ayuden por favor, estoy realizando la base de datos en acces, y para realizar operaciones tengo claro que tengo que realizar en consultas, en las operaciones basicas no tengo ningun problema y tambien tengo claro que se hacen entre columnas, pero yo quiero realizar lo siguiente:
Los campos que estoy utilizando son(Maq1 y Maq2) y por medio de una consulta hallo ProdTotal=Maq1*Maq2
Maq1 l l Maq2 l l ProdTotal l l Resultado
10 l l 20 l l 200 l l 200-0=200
15 l l 25 l l 375 l l 375-200=175
30 l l 50 l l 1500 l l 1500-375=1325
40 l l 60 l l 2400 l l 2400-1500=900


Por medio de una consulta hallo ProdTotal pero ahora quiero hallar Resultado que deberia ser igual a la resta de la fila posterior menos la fila anterior del campo ProTotal:
200 - 0 ;
375 - 200 ;
1500 – 375 ;
2400 – 1500 ;
.
.
.
Y asi sucesivamente a medida que vaya introduciendo nuevos datos. Me gustaria saber cual seria la intruccion en sql para acces o se puede hacer en vista diseño directamente una sentencia en la consulta……….Ayudenme por favor……… se lo agradecería un monton.

Última edición por liad; 20/10/2009 a las 15:28
  #2 (permalink)  
Antiguo 20/10/2009, 15:04
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 11 meses
Puntos: 39
Respuesta: Ayuda por favor.....necesito hacer operaciones entre filas en acces.......

Para que esos campos se calculen de esa forma tiene que haber un campo por el cual se orden, sino cómo sabes cuál es el anterior?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 21/10/2009, 14:10
 
Fecha de Ingreso: octubre-2009
Mensajes: 2
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ayuda por favor.....necesito hacer operaciones entre filas en acces.......

La verdad es que no entiendo lo que tratas de decirme.............si puedes ayudarme, no esta demas.......
  #4 (permalink)  
Antiguo 21/10/2009, 15:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años
Puntos: 180
Respuesta: Ayuda por favor.....necesito hacer operaciones entre filas en acces.......

Lo que el amigo Flaviovich comenta, es que cada registro deberia tener un IDENTIFICADOR de presendencia, para el ejemplo (ID)

IDl lMaq1 l l Maq2 l l ProdTotal l l Resultado
1l l10 l l 20 l l 200 l l 200-0=200
2l l15 l l 25 l l 375 l l 375-200=175
3l l30 l l 50 l l 1500 l l 1500-375=1325
4l l40 l l 60 l l 2400 l l 2400-1500=900
  #5 (permalink)  
Antiguo 22/10/2009, 07:57
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 11 meses
Puntos: 39
Respuesta: Ayuda por favor.....necesito hacer operaciones entre filas en acces.......

Y eso es lo que efectivamente hice:
Código sql:
Ver original
  1. SELECT T1.*,T1.Maq1*T1.Maq2 [ProdTotal],
  2. (T1.Maq1*T1.Maq2) - CASE WHEN T3.ProdTotal IS NULL THEN 0 ELSE T3.ProdTotal END [ProdTotalAnt]
  3. FROM tutabla T1
  4. INNER JOIN (
  5.     SELECT T1.Id,(SELECT MAX(Id) FROM tutabla WHERE Id < T1.Id) [IdAnt]
  6.     FROM tutabla T1
  7. ) T2 ON T1.Id = T2.Id
  8. LEFT JOIN (
  9.     SELECT Id, Maq1*Maq2 [ProdTotal]
  10.     FROM tutabla
  11. ) T3 ON T2.IdAnt = T3.Id
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:39.