У меня проблема с кодом в SQL Server.Ошибка:
Процедура ожидает параметр '@params' типа 'ntext / nchar / nvarchar'.
Мой код:
CREATE FUNCTION porcentajeCadaUno -- Se ingresa las variables del procedimiento almacenado para calcular % --
(@cantidad INT,
@idEvento BIGINT)
RETURNS FLOAT
AS
BEGIN
RETURN CAST((@cantidad) * 100 AS FLOAT) /
(SELECT (dbo.cuentaPersonasConEvento_Leidos(@idEvento)))
END
CREATE PROCEDURE porcentajeCadaCampoTabla
@nombreCampoTabla NVARCHAR(100),
@idEvento BIGINT
AS
BEGIN
DECLARE @stmt NVARCHAR(MAX), @params BIGINT
SET @params = @idEvento
SET @stmt = 'select [' +@nombreCampoTabla +'],count(['+@nombreCampoTabla+']),
dbo.porcentajeCadaUno (count(['+@nombreCampoTabla+']),@params) from Invitado as inv inner join
(select idInvitado from Invitado intersect select idInvitado_FK from Leido) as le on le.idInvitado=inv.idInvitado
where inv.idEvento_FK=@params group by ['+@nombreCampoTabla+']'
EXEC sp_executesql @stmt, @params
END
EXEC porcentajeCadaCampoTabla 'generoInvitado', 1
Я ожидаю, что в результате я получу таблицу с 3 столбцами, первый, имя переменных, второй (сколько) и третий процент.