TOTAL
 Calcula totales y agrupa registros con un valor clave determinado dejando
 el resultado en un fichero .dbf
------------------------------------------------------------------------------
 Sintaxis

     TOTAL ON <expClave> [FIELDS <lista idCampos>]
        TO <xcBaseDatos>
        [<ámbito>] [WHILE <lCondición>] [FOR <lCondición>]

 Argumentos

     ON <expClave> define el grupo de registros que produce un nuevo
     registro en el fichero de base de datos destino. Para que el cálculo de
     los totales sea exacto, debe haberse hecho antes un INDEX o SORT por
     esta expresión.

     FIELDS <lista idCampos> especifica la lista de campos numéricos
     para el cálculo del TOTAL. Si no se especifica la cláusula FIELDS, no
     se calcula ningún total de campos. En vez de ello, cada campo numérico
     del fichero destino contendrá el valor del primer registro que coincida
     con la expresión clave.

     TO <xcBaseDatos> es el nombre del fichero destino que va a contener
     la copia de los registros totalizados. Este argumento puede
     especificarse como un nombre literal o como una expresión de caracteres
     entre paréntesis. Si no se especifica lo contrario, el mandato TOTAL
     asigna una extensión .dbf.

     <ámbito> es la parte del fichero de base de datos actual en la que
     se va a ejecutar el mandato TOTAL. El ámbito por defecto es todos los
     registros (ALL).

     WHILE <lCondición> especifica el conjunto de registros que cumplen
     una condición desde el registro actual, hasta que la condición no se
     cumple.

     FOR <lCondición> especifica el conjunto condicional de registros en
     el que se ejecuta TOTAL en el ámbito dado.

 Descripción

     TOTAL es un mandato de base de datos que procesa secuencialmente el
     fichero de base de datos actual totalizando registros con el valor
     clave especificado y copiándolos en un nuevo fichero de base de datos.
     TOTAL actúa copiando primero la estructura del fichero de base de
     datos actual en <xcBaseDatos>, excepto los campos memo. Luego examina
     secuencialmente el ámbito especificado del fichero de base de datos
     actual. Cada registro con un valor <expClave> exclusivo se copia en el
     nuevo fichero de base de datos. Los valores de los campos numéricos
     especificados en <lista idCampos> de registros sucesivos con la misma
     <expClave> se suman y se guardan en los campos que tengan los mismos
     nombres en <xcBaseDatos>. La acumulación continúa hasta que se
     encuentra un registro con un nuevo valor clave. El proceso se repite
     entonces con este registro.

     Como TOTAL procesa secuencialmente el fichero de base de datos origen,
     dicho fichero debe haberse ordenado previamente con los mandatos INDEX
     o SORT según la <expClave>, a fin de que la totalización sea correcta.

     Para calcular satisfactoriamente el TOTAL de campos numéricos, los
     campos numéricos origen deben tener la anchura suficiente para
     almacenar el mayor total posible de los campos numéricos. En caso
     contrario, se produce un error de ejecución.

 Notas

     ■ Registros origen borrados: Si se ha establecido SET DELETED
        OFF, se tienen en cuenta los registros borrados en el fichero
        origen. Los registros de la <xcBaseDatos> destino heredan el estado
        de borrado del primer registro correspondiente del fichero origen,
        igual que los campos no totalizados heredan sus valores. Sin
        embargo, si se ha establecido SET DELETED ON, no se tienen en cuenta
        los registros borrados.

 Ejemplos

      En este ejemplo, se calcula un TOTAL ON según la expresión
        clave del índice activo utilizando una expresión de macro. Cuando se
        encuentra la expresión de macro, se evalúa la expresión y la cadena
        de caracteres resultante se sustituye por el argumento <expClave>
        del mandato TOTAL:

        USE Ventas INDEX Oficina NEW
        TOTAL ON &(INDEXKEY(0)) FIELDS Cantidad TO Resumen

 Ficheros   La biblioteca asociada es CLIPPER.LIB.

 To download this example - click here.

See Also: AVERAGE INDEX SORT SUM