![]() |
Select registros master según nº de líneas de detalle
Hola.
Win XP Delphi 7 FireBird 1.5 enlazado con IBX Tengo una tabla Master llamada ALUMNOS con su detalle FALTAS de disciplina. Quiero seleccionar los alumnos que tengan un numero determinado de faltas, comprendido entre dos números cogidos de dos Edits. Por ej. que me liste todos los alumnos con un número de faltas comprendido entre 5 y 10. No se como hacerlo. ¿ Alguna idea o sitio donde encontrar ayuda sobre esto ? Muchas gracias. Un saludo. |
|
¿Qué no podemos ahorrarnos el join?
// Saludos |
Muchas gracias, Poliburro y Román, voy a probarlo.
Un saludo. |
Me da este error:
Token Unknown -line 2, char 15 As ¿Qué está mal? Gracias. |
Cita:
Prueba con esto amigo. [delphi]
Suerte |
Cita:
Cita:
Claro que tienes razón, pero entiendo de la pregunta original que sólo interesan alumnos con faltas. Pero ciertamente, si se trata de una especie de reporte general, el join es necesario. // Saludos |
Hola:
Lo que me indicas es lo mismo que tengo pero puesto en vez de con add en varias líneas con Text en una sola línea, por lo que da el mismo error, en el As, solo que ahora está en la linea 1 Char 60 . Lo he cambiado así
y ahora pasa sin error pero al abrir la tabla alumnos me da IBDSAlumnos: campo 'NOMBRE' no encontrado. Si en el select le añado el campo NOMBRE (Select ALUMNOS.CODIALUMNO, ALUMNOS.NOMBRE, Count(*)) me da otro error en Group By: Invalid expression in the select list (not contained in either an agregate function or the GROUP BY clause) Un saludo. |
Entonces pruebalo así
|
A ver, primero que nada me permito insistir un poco en lo del join. Si se están buscando sólo alumnos con faltas, el join hará innecesariamente más lenta la consulta.
Por otra parte, el error del campo NOMBRE, no creo que venga de cómo está puesta la consulta puesto que no hay ninguna referencia a ese campo. Más parece que la componente IBDSAlumnos tiene asignado algún campo permanente que hace referencia a ese campo. También recomiendo a Fidel escoger nombres más indicativos para los alias, por que eso de FROM ALUMNOS AS MAESTRO, el día de mañana le va a traer un dolor de cabeza cuando intente recordar por qué los alumnos pasan a ser maestros. // Saludos |
Hola Poliburro:
Esto sigue siendo lo mismo y dando el mismo error: error en el As de As Maestro
Respecto a lo que dice Román, en la consulta puse: ".. alumnos con un determinado número de faltas .." y ponía que se cogen de dos edits en los culales se puede poner por ejemplo Desde 0 hasta 0 .. para ver alumnos que no tienen faltas desde 1 hasta 9 .. para ver alumnos que tienen faltas pero menos de 10 desde 10 hasta 9999 .. para ver alumnos que tienen más de 10 faltas De todas formas lo que me indicas ¿en que tabla iría?, ¿en la tabla Faltas? ¿Algo así ?
|
Cita:
Un saúdo |
Cita:
Necesitas el join entre tu maestro y tu detalle para poder obtener las faltas de TODOS los alumnos, pues si lo haces como román te menciona, nunca te aparecerína alumnos sin faltas (Desde 0 hasta 0 .. para ver alumnos que no tienen faltas). |
El problema que yo veo es que no se especifica lo que se está contando. Yo usaría esto:
|
Con lo que me indicas, d-hugo, me da el error:
IBDSAlumnos: Campo 'NOMBRE' no encontrado. Gracias. |
Este error, como te comenté antes no puede deberse a la consulta. Revisa a qué tienes enlazado el IBDSAlumnos. Si no es lo del campo permanente, quizá algún dbedit que anteriormente hubiera hecho referencia a ese campo.
// Saludos |
Cita:
OFFTOPIC: Perdón, no me he podido resistir:rolleyes: |
Roman tiene razón, fíjate que 'NOMBRE' no aparece por ninguna parte en la consulta. Algo tienes de más por alguna parte.
|
La franja horaria es GMT +2. Ahora son las 07:32:47. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi