使用EZTOOL內的SQL語法撈出進銷存資料

各位大大您好,因工作須要必需要用SQL語法撈出eztool系統內的資料來做行銷,也順便練練SQL 語法
請問這段語法哪錯了,怎麼都過不了 >=<

Select

a.據點代號,
sum(a.總金額) as 總金額,
max(b.姓名中文) as 姓名,
max(b.手機一) as 手機號碼,
max(b.手機二) as 手機號碼二

From

銷售主檔 a Inner JoIn 顧客資料 b On a.顧客編號= b.顧客編號 Inner JoIn 銷售明細商品 c On a.銷售單號=c.銷售單號

Where

a.日期 >='2019/01/01' And a.日期<='2019/12/31' and a.總金額 >2000

group by a.據點代號,a.顧客編號

Order By a.據點代號,a.總金額 desc
這case要算多少?
(1)你的group by有"顧客編號",但是select 沒有"顧客編號"

(2)總金額是group來的,不可以用where, 要用having:
a.日期 >='2019/01/01' And a.日期<='2019/12/31' having sum(a.總金額)>2000

(3)order by 總金額前面不用加"a." 因爲你已經 sum(a.總金額) as 總金額

(4)你有inner join “銷售明細商品” 這個Table, 但是沒有看到任何地方使用到
沒了解三階正規化 所以搞不請怎麼下語法
不知道樓主您系統所使用的資料庫是哪一種的? 基本上樓主您把

Order By a.據點代號,a.總金額 desc

改成

Order By a.據點代號,sum(a.總金額) desc

照道理應該就能跑了,如果還不能跑,可能資料庫類型不同,基本上SQL語法每家都"大同小異"

怕就怕在"小異"讓您不能跑。
我會建議

where後面先不要寫

先看select有沒有辦法show出表格

可以的話再從where寫下去

問題比較好釐清

有這類問題,你應該去藍色小舖問才對
摳男道爾 wrote:
(1)你的group(恕刪)


您真厲害,照您的方式改就過了~~~

感謝感謝
老翅幾回寒暑 wrote:
不知道樓主您系統所使(恕刪)



用什麼資料庫要問我們的系統廠商,不過原來sql語法還可以不一樣 ......orz
mobil123 wrote:
我會建議where後(恕刪)



謝謝您的建議,下次我會把where去掉,我剛測如果原本的語法把where去掉就能跑了

問題應該是出在order by
文章分享
評分
複製連結
bluekai