Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mssql中pivot表的设计_Sql_Asp.net_Sql Server_Pivot - Fatal编程技术网

mssql中pivot表的设计

mssql中pivot表的设计,sql,asp.net,sql-server,pivot,Sql,Asp.net,Sql Server,Pivot,我正在尝试开发透视表,但无法获得所需的结果。请参阅所需输出的附加图像。我无法为所需的解决方案设计pivot查询 这是我的sql查询:: select b.SchoolName, c.KaryakramName, a.NikashaAmount from TBL_NIKASHA a inner join TBL_SCHOOL b on b.SchoolId = a.SchoolId inner join TBL_KARYAKRAM c on a.KaryakramId =

我正在尝试开发透视表,但无法获得所需的结果。请参阅所需输出的附加图像。我无法为所需的解决方案设计pivot查询

这是我的sql查询::

select 
    b.SchoolName,
    c.KaryakramName,
    a.NikashaAmount
from TBL_NIKASHA a
inner join TBL_SCHOOL b on b.SchoolId = a.SchoolId
inner join TBL_KARYAKRAM c on a.KaryakramId = c.KaryakramId
WHERE 
a.NikashaType = 1 and c.karyakramType = 1
order by a.SchoolId;
这里,NikashaType和karyakramType来自用户

我必须在透视表中显示此查询的结果。到目前为止我所做的:

declare
    @columns nvarchar(max) = '',
    @sql nvarchar(max) = '';
    
select
    @columns += QUOTENAME(c.KaryakramName) + ','
from TBL_NIKASHA a
inner join TBL_SCHOOL b on b.SchoolId = a.SchoolId
inner join TBL_KARYAKRAM c on a.KaryakramId = c.KaryakramId
WHERE 
a.NikashaType = 1 and c.karyakramType = 1

SET @columns = left(@columns, len(@columns)-1);

set @sql = '
    select * from 
(
        select c.KaryakramName
        from TBL_NIKASHA a
        inner join TBL_SCHOOL b on b.SchoolId = a.SchoolId
        inner join TBL_KARYAKRAM c on a.KaryakramId = c.KaryakramId
        WHERE 
        a.NikashaType = 1 and c.karyakramType = 1
        order by a.SchoolId
) t
pivot
(
    a.NikashaAmount,
    for c.KaryakramName in ('+ @columns+')
) as pivot_table
';


execute sp_execute @sql;

我得到的错误是:过程需要类型为“int”的参数“@handle”。

sp\u executesql
不是
sp\u executes
。另外注意,使用
+=
进行字符串聚合是不明智的。对于XML路径解决方案,请使用
STRING\u AGG
或较旧的
。@Larnu获取错误
过程或函数“sp\u execute”需要未提供的参数“@handle”。
<代码>sp_执行SQL
。。。不执行。。。停止尝试使用sp_execute,它是错误的对象,