Dear All
請教各位前輩
小弟在操作MS SQL2000的匯出檔案至EXCEL功能
碰到了錯誤
但是,在查詢以及剖析語法的時候是沒問題的
試過了以下三種寫法都是一樣問題:
---1
Select a.商品貨號, a.商品名稱, b.庫存數量, c.庫存數量, d.庫存數量 from 商品基本檔 a
Inner join (select * from 商品庫存檔 where 門市編號='1001') b on a.商品貨號=b.商品貨號
Inner join (select * from 商品庫存檔 where 門市編號='1003') c on a.商品貨號=c.商品貨號
Inner join (select * from 商品庫存檔 where 門市編號='1005') d on a.商品貨號=d.商品貨號
Where a.大類編號='8' And (b.庫存數量 < = 0 And c.庫存數量 > = 0 And d.庫存數量 >= 1)
Order by a.商品貨號
---2
Select a.商品貨號, a.商品名稱, b.庫存數量, c.庫存數量, d.庫存數量 from 商品基本檔 a
Inner join (select 商品貨號, 庫存數量 from 商品庫存檔 where 門市編號='1001') b on a.商品貨號=b.商品貨號
Inner join (select 商品貨號, 庫存數量 from 商品庫存檔 where 門市編號='1003') c on a.商品貨號=c.商品貨號
Inner join (select 商品貨號, 庫存數量 from 商品庫存檔 where 門市編號='1005') d on a.商品貨號=d.商品貨號
Where a.大類編號='8' And (b.庫存數量 < = 0 And c.庫存數量 > = 0 And d.庫存數量 >= 1)
Order by a.商品貨號
---3
Select a.商品貨號, a.商品名稱, b.庫存數量, c.庫存數量, d.庫存數量 from 商品基本檔 a
Inner join (Select 商品貨號 as b貨號, 庫存數量 from 商品庫存檔 where 門市編號='1001') b on a.商品貨號=b.b貨號
Inner join (Select 商品貨號 as c貨號, 庫存數量 from 商品庫存檔 where 門市編號='1003') c on a.商品貨號=c.c貨號
Inner join (Select 商品貨號 as d貨號, 庫存數量 from 商品庫存檔 where 門市編號='1005') d on a.商品貨號=d.d貨號
Where a.大類編號='8' And (b.庫存數量 < = 0 And c.庫存數量 > = 0 And d.庫存數量 >= 1)
Order by a.商品貨號
請教了,謝謝
我覺得你應該看的是
上一列「建立資料表 結果 步驟」的錯誤原因
因為
資料表都建立不了
後面的複製資料更無法成功了
此檔案原先並不存在,是在匯出時新增的檔案,也有換過路徑和檔案名稱,無效
欄位名稱重覆
你有三個「庫存數量」
看看可不可以改成不同名稱試試看
改寫第一種寫法
不妨試試看
Select a.商品貨號, a.商品名稱, b.庫存數量 AS 庫存數量1001, c.庫存數量 AS 庫存數量1003, d.庫存數量 AS 庫存數量1005 from 商品基本檔 a
Inner join (select * from 商品庫存檔 where 門市編號='1001') b on a.商品貨號=b.商品貨號
Inner join (select * from 商品庫存檔 where 門市編號='1003') c on a.商品貨號=c.商品貨號
Inner join (select * from 商品庫存檔 where 門市編號='1005') d on a.商品貨號=d.商品貨號
Where a.大類編號='8' And (b.庫存數量 < = 0 And c.庫存數量 > = 0 And d.庫存數量 >= 1)
Order by a.商品貨號
謝謝@海綿寶寶 前輩
依照您所建議改寫後,已順利匯出EXCEL
原來是Select有三個"庫存數量"原因導致
只是小弟不解的是,為什麼在查詢及剖析是可以的呢??
查詢的時候他會自動幫你改名字, 不過可能匯出Excel這邊不會吧, 建議會重複的欄位名稱都要養成習慣命名
查詢及剖析三個「庫存數量」只是單純的「顯示結果文字」;
而在 EXCEL 中是把他當成「欄位名稱」,所以不得重覆
回頭想想
在SQL Server中
你應該也沒辦法在同一個TABLE中
建立重覆的欄位名稱吧...