Reporte de acuerdo a una condición

Hola de nuevo estimado amigo, espero se encuentre usted bien. De nuevo necesito de su gentil ayuda si está dentro de sus posibilidades. Necesito codificar una rutina que me permita hacer un reporte de acuerdo a una determinada opción. Me explico mejor:
En mi tabla tengo 1200 registros aproximadamente pertenecientes al alumnado de un colegio. Debo seleccionar según el grado "X" a todos aquellos alumnos que tienen hermanos inscritos en el colegio, mencionando la sección que cursan. Estos alumnos (los que tienen hermanos en el colegio) tienen en común un código de familia asignado. Es decir, si pido listar a los alumnos del PRIMER GRADO SECCIÓN A, en el reporte me deben aparecer aquellos alumnos de este curso que tengan hermanos en otro curso. Ejemplo:
Listado del primer grado a
Nombre del alumno sección
PEDRO PEREZ 4C, 5B
Esto quiere decir que Pedro Pérez tiene hermanos en el cuarto grado c y quinto grado b.
He tratado de hacerlo utilizando ciclos, filtros entre otras cosas, pero algo estoy haciendo mal ya que no lo he logrado. De nuevo mil gracias anticipadas. Dios le pague con mucha salud y bendiciones. Hasta pronto...

1 respuesta

Respuesta
1
Yo lo haría con uncursor readwrite consultando cuantos hermanos tiene cada alumno de esecurso por ejemplo
selec código, nombre, space(50) as hno, codpadre from alumno where curso='1A' into cursor familia readwrite
se le familia
go top
Do while !Eof()
    selec curso from alumno where codpadre=familia.codpadre into cursor consulta
    if  reccount(consulta)>1
      sele consulta
       hnos=''
       do while !eof()
          if curso<>famila.curso
                hnos=hnos+consulta.curso+space(2)
          Endif
          Skip
       Enddo
   repla familia.hno with hnos
   Endif
  Se le familia
  Skip
Enddo
Al final quedara grabado en familia todos los hermanos haber proba y me avisas
Hola, mil gracias por responder.
Mis conocimientos de SQL son casi nulos, necesito mayores luces para entender la rutina.
Le indico a continuación como se llaman mis campos y tabla para entender e identificar mejor las instrucciones que usted me ha facilitado.
La tabla se llama SEGURO0910, le menciono algunos de los campos contenidos en la tabla que pudiéramos utilizar:
COD_FAMILI -----> código que identifica al grupo familiar
CEDULA ----------> Nº identificación del alumno
CEDULA_REP------> Nº identificación del padre
NOMBRES
APELLIDOS
SECCIÓN---------> es el curso
¿En su ejemplo debería tener una tabla llamada familia? Estuve sustituyendo en sus instrucciones mis datos según lo que creí entender pero me genera error.
Gracias por su generosidad al compartir sus conocimientos. Hasta pronto.
Select *,space(30) as hno from seguro0910 where seccion=thisform.txtcurso.value into cursor cur_solocurso Readwrite && aqui selecciono solo el curso del que quiero scar el informe de hnos en el colegio
sele cur_solocurso
go top
Do while !Eof()
    selec seccion from alumno where codfamili=cur_solocurso.codfamili into cursor consulta
    if  reccount(consulta)>1
      sele consulta
       hnos=''
       do while !eof()
          if seccion<>cur_solocurso.seccion
                hnos=hnos+consulta.seccion+','
          endif
          skip
       enddo
   repla cur_solocurso.hno with hnos
   Endif
  sele cur_solocurso
  Skip
Enddo
Hola estimado, en esta oportunidad no he corrido con la suerte de antes. No logro que la rutina me funcione. Me da error por todas partes. Me dice que consulta no existe, no entiendo que es "hno", no entiendo por qué el primer select tiene un *, no entiendo que es "alumno"... en fin tengo enredado el panorama. De todas formas agradezco infinitamente su gentileza en tratar de ayudarme. Suerte y muchos éxitos para usted.
En una consulta poner * agrega todos los campos de la tabla si defino con 30 spacios un campo más llamado hno =hermanos (es decir agrego un campo más en la tabla resultante de la consulta) donde guardare todos los cursos donde tenga hermanos menos el curso actual Yo use alumno como la tabla donde estas todos los alumnos para ti seria seguro0910, creo que es todo lo que puedo ayudarte
Gracias estimado amigo, aun no resulevo lo de la rutina, pero estoy segura que con la información que usted gentilmente me ha suministrado más otras ayudas lograré pronto resolverlo. Como siempre muchísimas gracias, suerte y éxitos. Hasta pronto...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas