0
SQL Server上で完璧に動作するSQLコードがありますが、SSRSで実行するとうまく動作しますが、変数に定数を代入すると、値。SSRSでt sqlピボットテーブルを使用しているときにエラーが発生しました
これは私が使用しているコードです。
------LISTADO DE calificaciones de ESTUDIANTES
DECLARE @PivotColumnHeaders VARCHAR(MAX)
SELECT @PivotColumnHeaders =
COALESCE(
@PivotColumnHeaders + ',[' + cast(Codigo as varchar) + ']',
'[' + cast(Codigo as varchar)+ ']'
)
FROM RubroCalificaciones
inner join RubrosMetodosEvaluacion on RubroCalificaciones.IdRubro = RubrosMetodosEvaluacion.IdRubro
inner join MetodosEvaluacion on RubrosMetodosEvaluacion.IdMetodoEvaluacion = MetodosEvaluacion.IdMetodoEvaluacion
inner join AsignacionesMetodosEvaluacion on AsignacionesMetodosEvaluacion.IdMetodoEvaluacion = MetodosEvaluacion.IdMetodoEvaluacion
where AsignacionesMetodosEvaluacion.IdGrupo = @IdGrupo--293856
DECLARE @PivotTableSQL NVARCHAR(MAX)
SET @PivotTableSQL = N'
SELECT *
FROM (
select Estudiantes.Matricula, Personas.Nombres, Personas.Apellido1, personas.Apellido2,
RubroCalificaciones.Codigo, CalificacionesDetalle.PuntosAsignados
from Matriculas
inner join Personas on Matriculas.IdPersona = Personas.IdPersona
inner join Estudiantes on Matriculas.IdPersona = Estudiantes.IdPersona
inner join AsignacionesMetodosEvaluacion on Matriculas.IdGrupo = AsignacionesMetodosEvaluacion.IdGrupo
inner join MetodosEvaluacion on AsignacionesMetodosEvaluacion.IdMetodoEvaluacion = MetodosEvaluacion.IdMetodoEvaluacion
inner join RubrosMetodosEvaluacion on MetodosEvaluacion.IdMetodoEvaluacion = RubrosMetodosEvaluacion.IdMetodoEvaluacion
inner join RubroCalificaciones on RubroCalificaciones.IdRubro = RubrosMetodosEvaluacion.IdRubro
left outer join CalificacionesDetalle on CalificacionesDetalle.IdRubro = RubrosMetodosEvaluacion.IdRubro and
CalificacionesDetalle.IdMetodoEvaluacion = RubrosMetodosEvaluacion.IdMetodoEvaluacion
and CalificacionesDetalle.IdMatricula = Matriculas.IdMatricula
where Matriculas.IdGrupo = @IdGrupo--293856
) AS PivotData
PIVOT (
max(PuntosAsignados)
FOR Codigo IN (
' + @PivotColumnHeaders + '
)
) AS PivotTable
'
EXECUTE(@PivotTableSQL)
は、動的SQLで何を意味するのですか?私は、コードの下を参照して、パラメータ値 – Carlos
@Carlosを送信するアプリケーションを持っています。あなたは動的SQLに@IdGrupoを持っており、値は与えられませんでした。あなたは 'sp_ExecuteSQL'を使用し、@IdGrupo値を動的SQLに渡す必要があります。 – RichardTheKiwi
はい、私はそれを見ますが、それはパラメータです。 – Carlos