Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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
SQL-数据透视,其中一个表的行是另一个表的列标题_Sql_Tsql - Fatal编程技术网

SQL-数据透视,其中一个表的行是另一个表的列标题

SQL-数据透视,其中一个表的行是另一个表的列标题,sql,tsql,Sql,Tsql,我希望以矩阵的形式创建一个表(如下所示),其中列标题是变量 @可作为行为 @作为WCT的WCT表 临时表,从@ProductionTable派生为PT 我要查找的输出如下所示。基本上,我希望ACT.AC作为专栏标题运行,WCT.WC运行,并计算11月6日ActFin的数量。颜色显示匹配关联。之后我将合并其余部分,不太关心null或0 到目前为止的查询(在FOR语句处失败) 这可能吗?FOR子句的中的列需要包装在[]中: SELECT * FROM ( SELECT

我希望以矩阵的形式创建一个表(如下所示),其中列标题是变量

@可作为行为

@作为WCT的WCT表

临时表,从@ProductionTable派生为PT

我要查找的输出如下所示。基本上,我希望ACT.AC作为专栏标题运行,WCT.WC运行,并计算11月6日ActFin的数量。颜色显示匹配关联。之后我将合并其余部分,不太关心null或0

到目前为止的查询(在FOR语句处失败)


这可能吗?

FOR子句的
中的列需要包装在
[]
中:

SELECT * FROM  
(
    SELECT
        PT.ParentPart,
        ACT.AC,
        WCT.WC,
        PT.ActFin 
    FROM @ProductionTable AS PT
        INNER JOIN @WCTable AS WCT ON WCT.WC = PT.WC
        INNER JOIN @ACTable AS ACT ON PT.AC = ACT.AC
) t
PIVOT(
    COUNT(CASE
            WHEN
                PT.ActFin > '2019-11-06' --count
            THEN
                1
            END)
    FOR ACT.AC IN ( --this is where things fall apart
        [54],
        [53],
        [52])
)

“这是事情分崩离析的地方”无助于我们帮助你。如何分崩离析?出错?错误的结果?没有结果?我只是不知道如何从这一点出发。那么,您当前的代码有什么问题吗?我不明白您所说的“我没有看到任何关于
语句的
”是什么意思。@alexherm FOR ACT.AC IN(。。。
SELECT * FROM  
(
    SELECT
        PT.ParentPart,
        ACT.AC,
        WCT.WC,
        PT.ActFin 
    FROM @ProductionTable AS PT
        INNER JOIN @WCTable AS WCT ON WCT.WC = PT.WC
        INNER JOIN @ACTable AS ACT ON PT.AC = ACT.AC
) t
PIVOT(
    COUNT(CASE
            WHEN
                PT.ActFin > '2019-11-06' --count
            THEN
                1
            END)
    FOR ACT.AC IN ( --this is where things fall apart
        [54],
        [53],
        [52])
)