2009-10-28 89 views
0

我想下面的數據導出,從MS SQL服務器訪問的查詢,它說一個錯誤「字段已WKID存在於表中的結果」錯誤而從MS SQL出口訪問

當我嘗試執行相同的使用SQL查詢分析器,它沒有給予任何error.i我得到的結果在網格

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 
+1

具有格式稍好的代碼可以更容易地查看@astander在答案中指出的內容。 SQL查詢分析器不關心列名是否重複,請嘗試_SELECT 1作爲A,1 AS A,1 AS A_,但如果您嘗試在Access中創建新表,我敢打賭它很在意。 – 2009-10-28 11:41:31

回答

2

當您導出到Excel,你需要有獨特的列名。你已經指定了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,你應該沒問題。