SQL - Consulta usando inner join, cualquier asignatura

 
Vista:
Imágen de perfil de Jhon Jairo
Val: 30
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta usando inner join, cualquier asignatura

Publicado por Jhon Jairo (22 intervenciones) el 06/03/2017 23:40:06
Hola, tengo esta consulta para hacer
4. Retornar e imprimir la cantidad que pueden habilitar cualquier asignatura, indicando el nombre de la asignatura.

Las tablas:
Alumno, campos DocIdent, nombres, apellidos
Nota, campos: DocIdent, CodAsig, definitiva
Asignatura, campos: CodAsig, nombre

Tengo una consulta parecida:
1
2
3
4
5
6
7
8
9
10
ALTER PROCEDURE [dbo].[RETORNA_CANT_ALUM_PER_ASIG]
@MATERIA NVARCHAR(50)
AS
SELECT COUNT(*) FROM(
select a.DocIdent, a.apellidos, a.nombres ,s.nombre, n.Definitiva
 from dbo.Alumno a inner join dbo.Nota n
 on a.DocIdent = n.DocIdent inner join dbo.Asignatura s
 on s.CodAsig = n.codAsig
 where n.Definitiva >= 2.99 AND s.nombre= @MATERIA
 )CONTEO


¿Me podrían ayudar a ajustarla por favor?
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 Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta usando inner join, cualquier asignatura

Publicado por Isaias (1921 intervenciones) el 07/03/2017 23:09:05
Con gusto, ¿que motor de base de datos trabajas?, ¿Que te arroja tu query?
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 Jhon Jairo
Val: 30
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta usando inner join, cualquier asignatura

Publicado por Jhon Jairo (22 intervenciones) el 08/03/2017 18:59:32
Sql 2012

Esta es la query completa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
ALTER PROCEDURE [dbo].[RETORNA_CANT_ALUM_PER_ASIG]
@Materia NVARCHAR(50)
AS
SELECT COUNT(*) FROM(
select a.DocIdent, a.apellidos, a.nombres ,s.nombre, n.Definitiva
 from dbo.Alumno a inner join dbo.Nota n
 on a.DocIdent = n.DocIdent inner join dbo.Asignatura s
 on s.CodAsig = n.codAsig
 where n.Definitiva BETWEEN 2.5 AND 2.99 AND s.nombre='Visual Basic'
 )CONTEO

Sale: Comandos completados correctamente.

No sale ningún nùmero. Agregué Visual Basic para que tuviera un parámetro de entrada.
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
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta usando inner join, cualquier asignatura

Publicado por Isaias (1921 intervenciones) el 08/03/2017 20:52:19
No se que tanta experiencia tengas con SQL SERVER, al parecer es muy poca.

Tu query lo que hace, es CREAR UN PROCEDMIENTO, que para ejecutarlo, necesitas hacer lo siguiente

En una nueva pantalla de query (new query o nueva consulta)

EXECUTE RETORNA_CANT_ALUM_PER_ASIG @Materia='Visual Basic'

Y esto, debe darte una resultado o recordset
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 Jhon Jairo
Val: 30
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Consulta usando inner join, cualquier asignatura

Publicado por Jhon Jairo (22 intervenciones) el 10/03/2017 14:05:25
Gracias por decir que no se nada, eso me hizo sentir muy bien.

Al ejecutar la query me sale el conteo, sin embargo, me falta mostrar el nombre de la asignatura.
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