FOX Comparar campos de diferentes tablas y agruparlos
Publicado por nancy (8 intervenciones) el 16/11/2016 20:25:14
Hola a todos, agradeciendo de su apoyo con la siguiente duda: Tengo dos tablas diferentes, ambas tienen 4 campos Id_control (llave primaria), id_grupo, Descgru_id,Monto, en el campo id_grupo se pueden repetir n veces un código de proyecto, y en Monto puede cambiar diariamente. Lo que debo de buscar es que al comparar el id_grupo y el Monto correspondiente del corte del día con el corte de un día anterior, y poder visualizar la diferencia que tuvo el campo de Monto, y agrupar esos resultados conforme al id_grupo. Estoy trabajando con la Versión FoxPro9.0
Pondre un ejemplo, para ser algo mas clara.
Corte dia 15/11/2016 - Corte dia 16/11/2016
id_control | id_grupo | descgru_id | monto - id_control | id_grupo | descgru_id | monto
1 | D-01 | Proyecto1 | 10000 - 1 | D-01 | Proyecto1 | 20000
2 | D-010 | Proyecto2 | 15000 - 2 | D-010 | Proyecto2 | 40000
3 | C-01 | Proyecto3 | 20000 - 3 | C-01 | Proyecto3 | 25000
4 | C-01 | Proyecto4 | 20000 - 4 | C-01 | Proyecto4 | 20000
5 | C-01 | Proyecto5 | 10000 - 5 | C-01 | Proyecto5 | 15000
6 | A-01 | Proyecto 6 |30000 - 6 | A-01 | Proyecto 6 |50000
- 7 | E-01 | Proyecto7 | 70000
Se puede apreciar que algunos montos cambian, entonces debo de saber la diferencia que hubo en cada Id_grupo, pero como son muchos registros me piden que agrupe las diferencias por Id_grupo, que haciendo los calculos manualmente de este ejemplo seria:
id_control | id_grupo | diferencia
1 | D-01 | 10000
2 | D-010 | 25000
3 | C-01 | 10000
6 | A-01 | 35000
7 | E-01 | 70000
Ejecuto esta sentencia pero no me arroja lo que necesito
SET ENGINEBEHAVIOR 70
SELECT T1.id_grupo,T1.descgru_id,T1.MONTO-T2.MONTO as diferencia FROM Tabla1 T1 INNER JOIN Tabla T2 ON T1.id_control=T2.id_control group by T1.id_grupo
Pero esta consulta no me arroja lo que necesito,
Pondre un ejemplo, para ser algo mas clara.
Corte dia 15/11/2016 - Corte dia 16/11/2016
id_control | id_grupo | descgru_id | monto - id_control | id_grupo | descgru_id | monto
1 | D-01 | Proyecto1 | 10000 - 1 | D-01 | Proyecto1 | 20000
2 | D-010 | Proyecto2 | 15000 - 2 | D-010 | Proyecto2 | 40000
3 | C-01 | Proyecto3 | 20000 - 3 | C-01 | Proyecto3 | 25000
4 | C-01 | Proyecto4 | 20000 - 4 | C-01 | Proyecto4 | 20000
5 | C-01 | Proyecto5 | 10000 - 5 | C-01 | Proyecto5 | 15000
6 | A-01 | Proyecto 6 |30000 - 6 | A-01 | Proyecto 6 |50000
- 7 | E-01 | Proyecto7 | 70000
Se puede apreciar que algunos montos cambian, entonces debo de saber la diferencia que hubo en cada Id_grupo, pero como son muchos registros me piden que agrupe las diferencias por Id_grupo, que haciendo los calculos manualmente de este ejemplo seria:
id_control | id_grupo | diferencia
1 | D-01 | 10000
2 | D-010 | 25000
3 | C-01 | 10000
6 | A-01 | 35000
7 | E-01 | 70000
Ejecuto esta sentencia pero no me arroja lo que necesito
SET ENGINEBEHAVIOR 70
SELECT T1.id_grupo,T1.descgru_id,T1.MONTO-T2.MONTO as diferencia FROM Tabla1 T1 INNER JOIN Tabla T2 ON T1.id_control=T2.id_control group by T1.id_grupo
Pero esta consulta no me arroja lo que necesito,
Valora esta pregunta
0