Suma de trabajos por mecánico elegido

Tengo el siguiente código:
SELECT Sum (-Est_Aceite_Motor) as eam, sum (-Est_Balatas) as eb, sum (-Sistema_Luces) as sl
from Check_Tractos
where(Check_Tractos. Fecha_Check) Between [Desde] And [Hasta] and ([Mecánico]= Mec_SLT or [Mecánico]= Mec_EAM or [Mecánico]= Mec_EBT);
Segun la tabla el resultado de esta consulta si eligo a Luis como mecánico debería ser:
|eam | eb | sl |
| _0_ |_0_| 1 |
Pero el resultado que me sale es:
|eam| eb | sl |
|_1 _|_0_ | 1 |
Y mi tabla es:
|Fecha_Check|Est_Acet_Mtor|Mec_EAM |Est_Btas|Mec_EB|Sist_Luces|Mec_SL|
|15-02-2010     |           -1           | pedro       |       0       |               |        -1          |Luis     |
|20-02-2010     |            0           |                   |      -1      | Hector |          0          |               |
|22-02-2010     |           -1           | pedro       |      0       |                |                    |                |
Como pueden observar al momento de elegir a Luis ademas de marcarme el sistema de luces me marca Est_Aceite_Motor y creo que se debe a que en el momento en que se ubica en el cuadro de luis como que mira hacia al lado y se topa con pedro y por ende lo toma en cuenta.
¿Cómo hago para que sólo tome en cuenta a Luis?

2 Respuestas

Respuesta
1
Algo no me queda claro, si mirás el registro:
|Fecha_Check|Est_Acet_Mtor|Mec_EAM |Est_Btas|Mec_EB|Sist_Luces|Mec_SL|
|15-02-2010     |           -1           | pedro       |       0       |               |        -1          |Luis     |
Es lógico que cuando traiga a Luis te devuelva
|_1 _|_0_ | 1 | (que es lo que hace)
y no | _0_ |_0_| 1 | que es lo que decís que debería hacer.
Mira, en el registro que pusiste solo se toma en cuenta que luis hizo Sist_Luces debido a que valen los trabajos que están al lado del nombre, en el caso del registro el trabajo Est_Acet_Mtor lo hizo pedro y no luis por eso el resultado es de |0|0|1|, ademas debe sumar hacia abajo, según este el nombre o no por trabajo.
Ah, ya entiendo, entonces estás haciendo algo mal en la consulta, ¿qué motor de BD usás?
jiji, si sé que está malo, por eso preguntaba, no sé a que te refieres con la pregunta pero uso access 2000 y el código en sql.
Perdón, me faltó una 'i' en la última:
SELECT iif(Mec_SLT=[Mecánico],1,0) as eam, iif(Mec_EAM=[Mecánico],1,0)as eb, iif(Mec_SLT=[Mecánico],1,0)  as sl
from Check_Tractos
where(Check_Tractos. Fecha_Check) Between [Desde] And [Hasta] and ([Mecánico]= Mec_SLT or [Mecánico]= Mec_EAM or [Mecánico]= Mec_EBT);
Hola, acabo de probarlo y me sale bien, eso si en el código cambie los Mec_SLT repetidos, porque se supone que son distintos, bueno arreglado todo funcionó muy bien gracias.
Excelente, no olvides calificar la respuesta y cerrar la pregunta. A tu disposición para cualquier otra consulta.
Respuesta
1
El problema podría ser el uso de los or en la instrucción
si me pudieras enviar algunos datos, de la tabla y la estructura de la tabla
para instalarla en mi equipo y hacer unas pruebas, pero posiblemente es el uso
de los or en la instrucción
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas