数据库的兼容级别出错,总报错"'PIVOT' 附近有语法错误

今天帮人做一个交叉表,发现一个奇怪的问题

select Region,Post_City,CompanyId,CompanyName,[HP耗材放心店] as [HP耗材放心店],[HP产品专卖店] as [HP产品专卖店],[分公司(branch)] as [分公司(branch)] from
(
select
c.Region,c.Post_City,a.CompanyId,a.CompanyName,b.ItemId,b.StoreType
from
Profiling_Company a
left join Profiling_Branch b on a.CompanyId=b.CompanyId
inner join dbo.Rebate_Partner c on a.CompanyId=c.Company_Id
where a.Active=1
and c.Region='北区'
--and Post_City='秦皇岛'
) as PB
PIVOT
(
count(ItemId) for StoreType IN ([HP耗材放心店],[HP产品专卖店],[分公司(branch)])
) as PVT

上面的语句并未出错,但是总报错"'PIVOT' 附近有语法错误。您可能需要将当前数据库的兼容级别设置为更高的值,以启用此功能"
初步猜测是没有支持2005的新语法,不支持PIVOT关键字,(注:这个库是别人给我的,也许是从2000里导出来的)
按照提示需要修改正在操作数据库的兼容级别,在网上搜了一下,有个系统存储过程可以办到这点
EXEC   sp_dbcmptlevel kingdee,90
其中'kingdee'就是你要修改兼容性的数据库名,运行完毕后,重新运行上面的sql语句,执行成功

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lee576/archive/2008/01/17/2048565.aspx

posted on 2010-11-06 15:02  www56  阅读(2226)  评论(1编辑  收藏  举报

导航