SQL - ayuda con una consulta sql

   
Vista:

ayuda con una consulta sql

Publicado por jesus ledesma (3 intervenciones) el 08/07/2010 01:32:19
hola amigos tengo un proble con una consulta , tengo que realisar un recibo de pago y me debe mandar los datos a un data report en visual basic y me los manda pero me manda varios registros de pagos y yo solo quiero que me made el ultimo pago aki les dejo el codigo ayuda porfa..

Set cone = New ADODB.Connection
Set regi = New ADODB.Recordset

cone.ConnectionString = "DSN=easy"
cone.Open

regi.ActiveConnection = cone
regi.CursorType = adOpenDynamic

regi.LockType = adLockOptimistic
cve = InputBox("escribe la clave del alumnno")

regi.Source = "SELECT * FROM alumnos INNER JOIN pagos ON alumnos.cve_alumno =" & cve & ""
regi.Open

Set DataReport2.DataSource = regi
DataReport2.Show 1


espero me yuden porfa......gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con una consulta sql

Publicado por Numan Medina (3 intervenciones) el 09/07/2010 16:18:21
Ok por lo ke veo

regi.Source = "SELECT * FROM alumnos INNER JOIN pagos ON alumnos.cve_alumno =" & cve & ""

no se visual pero lo que estas haciendo con el SELECT es hacer una consulta de todos los registros osea de todos los recibo de pago.... ahora te hago una pregunta.

Los recibo de pago tienen algun valor por el cual se puedan identificar?

por ejemplo

regi.Source = "SELECT * FROM alumnos INNER JOIN pagos ON alumnos.cve_alumno =" & cve & ""

luego que te trae la consulta podrias hacer otra dentro de esta

regi.Source = "SELECT * FROM alumnos INNER JOIN pagos ON alumnos.Cod.Pago =" & Recibo de pago & ""

la primera para buscar todas las que tiene y la segunda para buscar la ultima me entiendes? no se si me explico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con una consulta sql

Publicado por Leonardo Josue (877 intervenciones) el 09/07/2010 16:20:05
Buenos días Jesús:

Antes que nada te hago una recomendación: Este foro es de SQL, por lo que sería conveniente que preguntes sólo sobre cuestiones de este lenguaje... en tu post colocas código Visual Basic y te recuerdo que existe su propio Foro donde puedes expresar las dudas que tengas al respecto.

Ahora sí, entrando en materia, en tu post no mencionas cual es la estructura de tus tablas ALUMNOS y PAGOS, por lo que se complica aun mas tratar de ayudarte. Tampoco pones ningún dato de ejemplo, del problema que te está arrojando tu consulta ni de la salida que esperas. Te recuerdo que mientras más información proporciones habrá mas posibilidades de poder ayudarte.

Supongo que en tu tabla PAGOS debes tener algún campo tipo fecha en donde almacenes la fecha en la que se realizó dicho pago. Entonces puedes hacer lo siguiente:

SELECT * FROM alumnos X
INNER JOIN pagos Y ON Y.cve_alumno = X.cve_alumno
WHERE
Y.fecha_pago =
(
SELECT MAX(fecha_pago) from pagos Z where Z.cve_alumno = X.cve_alumno
)
and X.cve_alumno = " & cve & ""

Te recomiendo que en la clausula ON del INNER JOIN sólo coloques las expresiones para unir las llaves y utilizar la sección WHERE para hacer el filtro de la información.

Saludos y espero tus comentarios
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar