从 ms sql 导出以访问时出错
Posted
技术标签:
【中文标题】从 ms sql 导出以访问时出错【英文标题】:Error while exporting from ms sql to access 【发布时间】:2009-10-28 10:54:40 【问题描述】:我正在尝试从ms sql server 导出查询中的以下数据进行访问,提示错误“字段wkid 已存在于表结果中”
当我尝试使用 sql 查询分析器执行相同操作时,它没有给出任何错误。我在网格中得到结果
Select a.wkid,a.stid,a.pfid,pf.pfname,a.modid,mm.md,a.catid,
[sp],revenue,profit,wkid from
(select stid,modid,pfid,catid,
[sp],revenue,profit,wkid
from dbo.modspsal
where wkid >= 200934 and wkid <= 201033 and
catid in (20001,20002,20003,20004,20005,20006)) as a
left join mml mm on
mm.modid=a.modid
left join (select distinct pfid,[pf name] as pfname from mml) as pf
on pf.pfid=a.pfid
order by a.wkid,stid,catid,a.pfid,a.modid
【问题讨论】:
拥有格式更好的代码可以更容易地看到@astander 在他的回答中指出的内容。 sql 查询分析器不关心列名是否重复,请尝试 SELECT 1 as A, 1 AS A, 1 AS A 但如果您尝试在 Access 中创建新表,我敢打赌它在乎。 【参考方案1】:当您导出到 excel 时,您需要具有唯一的列名。你已经指定了 wkid 2。
Select a.wkid,--HERE
a.stid,
a.pfid,
pf.pfname,
a.modid,
mm.md,
a.catid,
[sp],
revenue,
profit,
wkid --HERE
from (
select stid,
modid,
pfid,
catid,
[sp],
revenue,
profit,
wkid
from dbo.modspsal
where wkid >= 200934
and wkid <= 201033
and catid in (20001,20002,20003,20004,20005,20006)
) as a left join
mml mm ON mm.modid=a.modid left join
(
select distinct
pfid,
[pf name] as pfname
from mml
) as pf on pf.pfid=a.pfid
order by a.wkid,stid,catid,a.pfid,a.modid
删除最后一个 wkid 应该没问题。
【讨论】:
以上是关于从 ms sql 导出以访问时出错的主要内容,如果未能解决你的问题,请参考以下文章