| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
snupoo Lt Cmdr


Registrado: 19 Feb 2004Mensajes: 108Ubicación: Merida yucatan Mexico
|
Publicado: Vie 12 Ene, 2007 6:10 pm Asunto: Consulta sobre ADOQuery |
|
|
Hola a otodos tengo el siguiente problema:
tengo un ADOQuery el cual ejecuta una sentencia SQL que me debuelbe n registros de los cuales uno es el idempelado, el cual se repite, el problema es que necesito saber cuantos empleados me debuelbe esa consulta, pero hacer un GROUP BY no me funciona por que necesito todos los datos de los empelados. quiero hacer un select distinc idempleado sobre el ADOQuery que ya tengo para liego hacer un ADOQuery2->RowsAffected para tener ese numero.
Espero haberme explicado.
Gracias. _________________ [img]http://folding.extremeoverclocking.com/sigs/sigimage.php?un=snupoo&t=86565/sigimage.gif[/img]
A programar se aprende programando |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Sab 13 Ene, 2007 12:10 am Asunto: |
|
|
Bueno, dado que no puedes hacer un GROUP BY lo primero que se me ocurre es hacer un ciclo para recorrer la consulta y averiguar el numero de empleados diferentes...
Nota la consulta debe estar ordenada por idempleado
Ej.
| Código: | int i = 0, IdEmpOld = 0;
ADOQuery1->Open();
//Si la consulta no está vacia, significa que al menos hay un empleado
if ( ! ADOQuery1->IsEmpty() )
{
IdEmpOld = ADOQuery1->FieldsByName("IdEmpleado")->Value;
i += 1;
}
//Recorrer la tabla mientras no se llegue al final y si se encuantra
// un ID de empleado diferente se aumenta el contador
while ( ! ADOQuery1->Eof )
{
if ( IdEmpOld != ADOQuery1->FieldsByName("IdEmpleado")->Value )
i += 1;
ADOQuery1->next();
}
ADOQuery1->Close();
ShowMessage(IntToStr(i));
|
Otra opción es tener dos Querys con las mismas condiciones que deses, pero la diferencia es que el segundo haria un COUNT.
Ej.
| Código: | SELECT DISTINCT COUNT(*) FROM empleados WHERE "condiciones" |
Saludos! _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
snupoo Lt Cmdr


Registrado: 19 Feb 2004Mensajes: 108Ubicación: Merida yucatan Mexico
|
Publicado: Sab 13 Ene, 2007 5:33 pm Asunto: |
|
|
Gacias Buildero. _________________ [img]http://folding.extremeoverclocking.com/sigs/sigimage.php?un=snupoo&t=86565/sigimage.gif[/img]
A programar se aprende programando |
|
| Volver arriba |
|
 |
|