Cuestión : ¿Cómo podría seleccionar y sumar una tabla de una gama de campos?

Tengo esta tabla:
ID Period1 Period2 Period3 Period4 Period5 Period6 Period7 Period8 Period9
12 31 24 35 6 33 24 54 34 63
13 30 14 65 16 33 214 52 4 3
13 20 74 61 46 43 14 2 14 33

Case 1: el
I quiere seleccionar y sumar todos los períodos de Period1 a Period4.  Y puesto la cantidad en Period5, que tiene una cantidad que se agregará también.
case 2: Conseguir la suma y separarlos en una gama de periods.
class= del

Respuesta : ¿Cómo podría seleccionar y sumar una tabla de una gama de campos?

1. cómo es usted que exhibe los datos de esta tabla.
2.  En cómo están usted “que selecciona” los campos para sumar y el campo para poner los datos.
3.  ¿Usted quiere hacer esto para solamente un expediente a la vez, o todo los expedientes? (Asumo que el valor de la identificación en la tercera fila de sus datos de la muestra debe ser 14).

Para sumar a través de campos múltiples, utilizo una función que creé:

fnSum público de la función (ParamArray ValList () como variante) como variante

   intLoop dévil como número entero
   myVal dévil como variante
   
   = 0 myVal
   Para el intLoop = LBound (ValList) a UBound (ValList)
      Si IsNull (ValList (intLoop)) Entonces
        'no hacer nada
      ElseIf IsNumeric (ValList (intLoop)) Entonces
        myVal = myVal + ValList (intLoop)
      Terminar si
   Después
   fnSum = myVal
   
Función del final

En una pregunta, usted puede llamar esto como:

SELECCIONAR el fnSum ([Period1], [Period2], [Period3], [Period4]) como SumOfSomething
De yourTable

El problema más grande es que su estructura de la tabla es dañada.  Para una tabla con este tipo de datos, su estructura debe mirar más bién:

Identificación - Autonumber
SomeOtherID - número entero largo (esto sería una llave extranjera a un poco de otra tabla que describe lo que pertenecen los valores en su campo actual de la identificación tienen en campo común).  Puede ser que sea un projectID, o algo similar
Period_Num - número entero (aquí es donde usted identificaría el período específico - algo que en un nombre de campo)
Period_Val - el número entero largo, éste es donde usted almacenaría realmente el valor

Identificación ProjectID Period_Num Period_Val
1 12 1 31
2 12 2 24
3 12 3 35
4 12 4 6

Otras soluciones  
 
programming4us programming4us