今天下午忙于将access数据库中的交叉表转到sql server数据库中,在sql server中,不支持transfrom方法,查找相关资料,找到使用case方法进行转换
代码如下所示:
表landundertake结构如下所示:
表appraiser结构如下所示:
access代码:
代码如下:
transform first(landundertake.valuerid) as valuerid之first
select appraiser.quarterid, landundertake.landcode
from landundertake inner join appraiser on (landundertake .valuerid = appraiser.valuerid) and (landundertake .quarterid = appraiser.quarterid)
group by appraiser.quarterid, landundertake .landcode
pivot landundertake .valuergrade;
sql server代码:
代码如下:
select dbo.appraiser.quarterid,dbo.landundertake.landcode,case dbo.landundertake.appraisergrade when 'appraiserid1' then dbo.landundertake.appraiserid else null end as appraiserid,case dbo.landundertake.appraisergrade when 'appraiserid2' then dbo.landundertake.appraiserid else null end as appraiserid1
from dbo.landundertake inner join
dbo.appraiser on dbo.landundertake.quarterid=dbo.appraiser.quarterid and dbo.landundertake.appraiserid=dbo.appraiser.appraiserid
group by dbo.appraiser.quarterid,dbo.landundertake.landcode,dbo.landundertake.appraisergrade,dbo.landundertake.appraiserid
交叉表查询结果如下所示: