FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
consulta por campo calculado
Saludos a todos los del foro de delphi.
bueno mi pregunta es la siguiente: como puedo realizar una consulta en base a un campo calculado, tengo el siguiente codigo: Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT Alumnos.matricula, Alumnos.ApPat, Alumnos.ApMat, Alumnos.Nombre, Alumnos.Horario, Alumnos.status, Alumnos.Nombreprof, Alumnos.Colegiatura, Alumnos.UltSem, sum(Cobranza.Buenopor)as TotalPagado'); Query1.SQL.Add('FROM cobranza, Alumnos'); Query1.SQL.Add('Where (Alumnos.Matricula=Cobranza.Matricula) and (Alumnos.Status="ACTIVO") and Atraso>=3'); Query1.SQL.Add('Group by Alumnos.matricula, Alumnos.ApPat, Alumnos.ApMat, Alumnos.Nombre, Alumnos.horario, Alumnos.status, Alumnos.nombreprof, Alumnos.colegiatura, Alumnos.UltSem'); Query1.SQL.Add('Order by Alumnos.NombreProf, Alumnos.Horario, Alumnos.ApPat, Alumnos.ApMat, Alumnos.Nombre'); Query1.Open; En la consulta anteriormente realizada, necesito que se pueda realizar la consulta por el campo calculado Atraso, como esta en la linea del Where, pero me manda el mensaje " Invalid use of keyword" Token:>=3 Bueno ese es el problema, tal vez sea facil pero no doy con la solucion. Bueno muchas gracias por la ayuda que se me pueda brindar. Última edición por noe fecha: 25-06-2005 a las 16:19:20. |
#2
|
||||
|
||||
Saludos.
No se mucho SQL, pero... Donde esta declarado el campo ATRASO en la clausura Select? ??????
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#3
|
||||
|
||||
Gracias por responder, pero es que atraso no es un campo de una tabla como por ejemplo de la de alumnos, si no que es un campo calculado que sale de un query, como lo tengo entonces que declarar con el codigo que envié de ejemplo.
Gracias por la ayuda |
#4
|
||||
|
||||
Si entiendo bien lo que pides, tienes una tabla con un campo calculado y ahora deseas mediante una consulta, referirte a dicho campo que en realidad no existe en la tabla.
Un solución puede ser calcular en la consulta. Por ejemplo:
En donde Vencimiento sería nuestro campo calculado. Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
||||
|
||||
Gracias marcos, pero no me sirve lo que me escribiste, realice este codigo con parametros pero tampoco me sirve:
Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT Alumnos.matricula, Alumnos.ApPat, Alumnos.ApMat, Alumnos.Nombre, Alumnos.Horario, Alumnos.status, Alumnos.Nombreprof, Alumnos.Colegiatura, Alumnos.UltSem, sum(Cobranza.Buenopor)as TotalPagado'); Query1.SQL.Add('FROM cobranza, Alumnos'); Query1.SQL.Add('Where (Alumnos.Matricula=Cobranza.Matricula) and (Alumnos.Status="ACTIVO") and (:SemCons-Alumnos.UltSem>=3) '); Query1.SQL.Add('Group by Alumnos.matricula, Alumnos.ApPat, Alumnos.ApMat, Alumnos.Nombre, Alumnos.horario, Alumnos.status, Alumnos.nombreprof, Alumnos.colegiatura, Alumnos.UltSem'); Query1.SQL.Add('Order by Alumnos.NombreProf, Alumnos.Horario, Alumnos.ApPat, Alumnos.ApMat, Alumnos.Nombre'); Query1.ParamByName('SemCons').AsInteger:=strtoint(Edt_SemComparacion.text); Query1.Open; Lo que deseo es que unicamente me devuelva en la consulta aquellos alumnos que tengan de atraso de 3 semanas en adelante, UltSem es la ultima semana de pago que tiene el alumno. El parametro que esta en negritas creo que es el problema, porque me manda el error "Parameter 'SemCons' not found", o mas bien cual sera He buscado varias formas pero nada, aver si me pueden ayudar con mas sugerencias, les estaré agradecido. Última edición por noe fecha: 25-06-2005 a las 17:51:27. |
#6
|
||||
|
||||
No dices con que motor de base de datos estás trabajando, pero sino te permite incluir Date en la sentencia SQL
Haz:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
|
|
|