Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Question mostrar solo un registro cuyo id y cédula sean las mismas

Hola amigos buenos días. Tengo una pequeña duda, estoy haciendo un proyecto tipo moodle pero en delphi. Tengo el modulo de calificaciones donde se muestra un grid con el id del examen, cédula de los que participaron en dicho examen, nombre y apellido y la suma de la nota total.

- Tengo un form con un dbgrid, y un combobox,
el dbgrid conectado a 1 query con 2 tablas relacionadas, pero solo muestra en el dgbrid los campos, id:exa-cedula-nombre-apellido-nota
Código SQL [-]
SELECT
resp_calif.id_exad,eva_maestro.nombre_examen,resp_calif.cedula,resp_calif.pregunta,resp_calif.respue  sta,datos_personales.nombre,datos_personales.apellido,resp_calif.nota 
FROM
resp_calif
INNER JOIN datos_personales ON datos_personales.cedula = resp_calif.cedula
INNER JOIN eva_maestro ON eva_maestro.id_exa = resp_calif.id_exad

- las tablas son las siguientes:
resp_calif cuyos campos son (cedula-id_exad-pregunta-respuesta-puntos-nota), en esta tabla se encuentran todas las preguntas y respuestas de todos los usuarios, con los puntos que saco en la pregunta y el id del examen al que pertenece la pregunta (ejemplo, la cedula 123 respondió 5 preguntas del examen 1, lo que quiere decir que aparecerán 5 registros de esa cédula)

- en el combobox se muestran los id_exa(examenes), cuando selecciono el examen me muestra todos los usuarios que participaron en ese examen, lo que quiero que aparezca aquí es: la cédula 123 tiene 5 preguntas en el examen 1 pero que me aparezca un solo registro(es decir que solo me diga que esa cédula participo en ese examen y su nota es 20 por ejemplo).

- en el evento onchange del combobox tengo el siguiente código:
Código Delphi [-]
procedure TForm4.ComboBox1Change(Sender: TObject);
begin
with datamodule2.FDQuery10 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT resp_calif.id_exad,resp_calif.cedula,datos_personales.nombre,datos_personales.apellido,resp_calif.no  ta,eva_maestro.nombre_examen');
SQL.Add('FROM datos_personales, resp_calif, eva_maestro');
SQL.Add('WHERE datos_personales.cedula = resp_calif.cedula');
SQL.Add('AND eva_maestro.id_exa = resp_calif.id_exad');
SQL.Add('AND resp_calif.id_exad = :idexd');
ParamByName('idexd').AsString:= ComboBox1.Text;
Open;
end;
end;

pero eso me muestra la misma cédula con el mismo id varias veces(depende de la cantidad de preguntas que haya respondido en ese examen, si fueron 5, me aparecen 5 registros). Solo quiero que me diga 1 registro(para saber que la cédula participo en el examen)) Como puedo hacerlo? me ayudan por favor?

Última edición por Casimiro Notevi fecha: 23-03-2017 a las 17:48:39.
Responder Con Cita
  #2  
Antiguo 23-03-2017
Avatar de Young
Young Young is offline
Miembro
 
Registrado: abr 2006
Ubicación: San Felipe, Chile
Posts: 86
Poder: 18
Young Va por buen camino
Hola, me parece que la solución es agregar DISTINCT después del SELECT, esto eliminará los registros duplicados del resultado de la consulta.

Código SQL [-]
SELECT DISTINCT resp_calif.id_exad,eva_maestro.nombre_examen,resp_calif.cedula,resp_calif.pregunta,resp_calif.respue  sta,datos_personales.nombre,datos_personales.apellido,resp_calif.nota 
FROM
resp_calif
INNER JOIN datos_personales ON datos_personales.cedula = resp_calif.cedula
INNER JOIN eva_maestro ON eva_maestro.id_exa = resp_calif.id_exad

Saludos.
Responder Con Cita
  #3  
Antiguo 23-03-2017
yuyidt yuyidt is offline
Miembro
NULL
 
Registrado: oct 2016
Posts: 40
Poder: 0
yuyidt Va por buen camino
Gracias young

Estaba por escribir que ya lo había hecho, le agregue el distinct y cambie la consulta del query similar a la consulta de combobox.change. Gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Solo mostrar un registro en tabla maestra Luis M. Firebird e Interbase 5 25-11-2014 00:23:28
mostrar un solo registro en el dbgrid miguelgalindo87 Conexión con bases de datos 3 09-01-2013 05:54:51
mostrar un registro solo de un query Patricio Varios 3 18-11-2008 20:31:27
Mostrar un solo registro en un dbgrid Ivan_25 C++ Builder 5 03-11-2005 12:40:13
mostrar SOLO cliente de los que tengo un sólo registro Giniromero SQL 15 11-06-2004 12:33:19


La franja horaria es GMT +2. Ahora son las 05:41:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi