Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2014, 21:27
Nigth
 
Fecha de Ingreso: diciembre-2014
Mensajes: 1
Antigüedad: 10 años
Puntos: 0
Pregunta Consulta para ordenar registros que al sumarlos den 0

Hola, necesito ayuda. Tengo una consulta a una tabla con 405,168 registros, son cuentas contables y necesito que se orden de tal forma que el registro posterior sea el que tenga el mismo monto, pero diferente signo, del registro que lo antecede.

Por ejemplo:

Registro 1 ... -1250.00
Registro 2 ... 1250.00
Registro 3 ... - 345.00
Registro 4 .... 345.00

Se me ocurrió el siguiente query, el cual funcionaba con pocos registros de prueba. El problema es que hay muchos registros que coinciden con el campo cuenta y centro y se hace un cross join, haciendo una consulta que no termina nunca.
¿Qué otra alternativa puedo tomar para obtener los registros en ese orden? Tomando en cuenta que puedo llegar a tener muchos más registros.

Gracias de antemano. Saludos!
Código SQL:
Ver original
  1. SELECT fi.[ID],
  2.             fi.[ENTITY],
  3.             fi.[JOURNALID],
  4.             fi.[CODRECON],
  5.             fi.[ACCOUNT],
  6.             fi.[SITE],
  7.             fi.[CURRENCY],
  8.             fi.[SIGN],
  9.             fi.[AMOUNT],
  10.             fi.[EFECTIVEDATE],
  11.             fi.[PUBLICATIONDATE],
  12.             fi.[PROJECT],
  13.             fi.[DESCRIPTION],
  14.             fi.[IDENTIFIER]
  15.            
  16.       FROM [vwItems] AS fi
  17. INNER JOIN [vwItems] AS ft
  18.         ON fi.[ACCOUNT] = ft.[ACCOUNT]
  19.        AND fi.[SITE] = ft.[SITE]
  20.   GROUP BY  fi.[ID],
  21.             fi.[ENTITY],
  22.             fi.[JOURNALID],
  23.             fi.[CODRECON],
  24.             fi.[ACCOUNT],
  25.             fi.[SITE],
  26.             fi.[CURRENCY],
  27.             fi.[SIGN],
  28.             fi.[AMOUNT],
  29.             ft.[AMOUNT],
  30.             fi.[EFECTIVEDATE],
  31.             fi.[PUBLICATIONDATE],
  32.             fi.[PROJECT],
  33.             fi.[DESCRIPTION],
  34.             fi.[IDENTIFIER]
  35.     HAVING (fi.[AMOUNT] + ft.[AMOUNT]) = 0

Última edición por gnzsoloyo; 19/12/2014 a las 06:53