如何将数据透视表的结果保存到公用表表达式中?

时间:2018-08-22 20:19:28

标签: sql sql-server

我编写了此查询,并且内部部分工作正常,但是当我尝试运行“ with”行时,我得到了:

  

第102条消息,第15级,状态1,第14行   ')'附近的语法不正确。

with Cheese as(
    select * from (
        Select a.ID,c.Data,c.Name
        from Account as a
        Left join AccountContacts AS ac on ac.AccountID=a.ID
        left join Contact AS c on ac.AccountID=c.ID
        where a.ID in(30176)
    ) as d
    pivot (max(d.Data) for d.Name in ([email],[phone])) as p
    where p.email is not null or p.phone is not null
)

这必须是语法错误,但我只是没有看到它。我想念什么?

1 个答案:

答案 0 :(得分:2)

创建CTE时,必须在以下表达式中使用它。因此,只需在右括号后面添加以下行。

SELECT * FROM cheese