SQL Server - PROBLEMA PROC STORE

   
Vista:

PROBLEMA PROC STORE

Publicado por LR (3 intervenciones) el 10/08/2009 16:33:39
HOLA ESPERO ME PUEDAN AYUDAR TENGO EL SIGUIENTE PROBLEMA:
TENGO QUE DEVOLVER E IMPRIMIR EL NOMBRE Y EL APELLIDO DEL ALUMNO QUE TIENE LA MEJOR NOTA EN CUALQUIER ASIGNATURA.
PERO ME SALE EN UN ERROR EN
select top 1 max(defintiva),@NomAp=Apellidos + ' ' + Nombres from Nota
pero si yo le quito el @NomAp= me la ejecuta perfectamente, sino qu tengo q devolverlo por medio de un parametro de salida que es @NomAp=Apellidos + ' ' + Nombres AYUDAAAA ESTE ES EL PROCEDIMIENTO COMPLETO.

alter proc Alumno_MejorNota
@Asignatura varchar(10),
@NomAp varchar(50) output
as
select top 1 max(defintiva),@NomAp=Apellidos + ' ' + Nombres from Nota
inner join Alumno on Nota.DocIdent=Alumno.DocIdent
inner join Asignatura on Nota.CodAsig=Asignatura.CodAsig
where Asignatura.Nombre='LINUX'
group by Nombre,Apellidos
order by Definitiva desc
go
declare @NomAp varchar(50)
execute Alumno_MejorNota 'LINUX',@NomAp=@NomAp output
print 'El estudiante con la mejor nota es: ' + @NomAp
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
Imágen de perfil de roger

RE:PROBLEMA PROC STORE

Publicado por roger (173 intervenciones) el 12/08/2009 18:32:32
y que error te sale????, el error te aparece cuando compilas el procedimiento o cuando lo ejecutas?
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:PROBLEMA PROC STORE

Publicado por LR (3 intervenciones) el 12/08/2009 19:56:54
cuando lo compilo.
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
Imágen de perfil de Isaias

RE:PROBLEMA PROC STORE

Publicado por Isaias (3186 intervenciones) el 12/08/2009 20:53:28
Prueba asi y nos comentas

CREATE PROCEDURE usp_Alumno_MejorNota
@Asignatura varchar(10),
@NomAp varchar(50) output
AS
BEGIN
SET NOCOUNT ON
SELECT @NomAp = a.NomAp FROM (
SELECT TOP 1 max(defintiva), (Apellidos + ' ' + Nombres) AS NomAp
FROM Nota
INNER JOIN Alumno on Nota.DocIdent = Alumno.DocIdent
INNER JOIN Asignatura on Nota.CodAsig = Asignatura.CodAsig
WHERE Asignatura.Nombre = @Asignatura
GROUP BY Nombre,Apellidos ) as a
END
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:PROBLEMA PROC STORE

Publicado por LR (3 intervenciones) el 12/08/2009 21:46:18
hola.
lo puse tal cual me lo envias y me saca el siguiente error

Mens 8120, Nivel 16, Estado 1, Procedimiento usp_Alumno_MejorNota, Línea 8
La columna 'Alumno.Nombres' de la lista de selección no es válida, porque no está contenida en una función de agregado ni en la cláusula GROUP BY.
Mens 8155, Nivel 16, Estado 2, Procedimiento usp_Alumno_MejorNota, Línea 14
No se especificó ningún nombre de columna para la columna 1 de 'A'.
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
Imágen de perfil de Isaias

RE:PROBLEMA PROC STORE

Publicado por Isaias (3186 intervenciones) el 14/08/2009 17:41:38
Mi estimado LR, no tengo las tablas para hacer pruebas, tu que si las tienes, podrias identificar facilmente los problemas de estructura, prueba con esta:

SELECT @NomAp = a.NomAp FROM (
SELECT TOP 1 max(defintiva) as Definitiva, (Apellidos + ' ' + Nombres) AS NomAp
FROM Nota
INNER JOIN Alumno on Nota.DocIdent = Alumno.DocIdent
INNER JOIN Asignatura on Nota.CodAsig = Asignatura.CodAsig
WHERE Asignatura.Nombre = @Asignatura
GROUP BY (Apellidos + ' ' + Nombres) ) as a
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