VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

[分享]vfp+sql server語法 iif->case..when..then

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
goodnight



註冊時間: 2008-10-13
文章: 472
來自: 台南市

第 1 樓

發表發表於: 星期二 三月 20, 2012 10:29 am    文章主題: [分享]vfp+sql server語法 iif->case..when..then 引言回覆

本來我都是把符合條件的資料download下來再處理

後來遇到需要用到判斷條件後增加欄位, 也想簡化程式, 讓自己進步一下

例如 1 = 1.未生產

在 vfp local 裡可以用 iif() 來解決, 但是當我要用在 sql server 時, iif() 就不能用了, 因為必須符合 sql server 語法, 於是找了討論區的文章, 終於找到解決方案, 因此分享一下整體的語法, 包含了 table 的關連, 當然這篇是針對初級者, 請各位先進及高手也多多指導

其實我是偷懶的先在 access 建好, 再複製到 vfp, 中間也遇到了有趣的事
就是在 access 卻可以用 iif() , 可能是 access 會自動轉換吧, 而 vfp 不會自動轉換



以下是語法 (部份欄位拿掉了, 只留重要語法)
紅色語法就是取代 iif()
SI_SQL_CMD = ;
"SELECT Left([TA010],6) AS 預交年月, MOCTA.TA010 AS 預計完工日, MOCTA.TA014 AS 實際完工日, MOCTH.TH005 AS 供應商代碼, PURMA.MA002 AS 供應商名稱, " + ;
"MOCTA.TA001 AS 製令單別, MOCTA.TA002 AS 製令單號, MOCTA.TA006 AS 產品品號, MOCTA.TA034 AS 產品名稱, MOCTA.TA035 AS 產品規格, MOCTA.TA007 AS 單位, " + ;
"MOCTA.TA015 AS 預計產量, MOCTA.TA017 AS 已生產量, MOCTI.TI007 AS 進貨數量, MOCTI.TI019 AS 驗收數量, MOCTA.TA044 AS 急料, MOCTA.TA011 AS 狀態碼, " + ;
"CASE MOCTA.TA011 WHEN '1' THEN '1.未生產' WHEN '2' THEN '2.已發料' WHEN '3' THEN '3.已生產' WHEN 'Y' THEN 'Y:已完工' ELSE 'y:指定完工' END AS 狀態名稱 " + ;
"FROM ((MOCTA LEFT JOIN MOCTI ON (MOCTA.TA002 = MOCTI.TI014) AND (MOCTA.TA001 = MOCTI.TI013)) LEFT JOIN MOCTH ON (MOCTI.TI002 = MOCTH.TH002) AND " + ;
"(MOCTI.TI001 = MOCTH.TH001)) LEFT JOIN PURMA ON MOCTH.TH005 = PURMA.MA001 " + ;

"WHERE (((MOCTA.TA010) Between ?_PARA1 And ?_PARA2) AND ((MOCTA.TA001)='OD51')) " + ;
"ORDER BY MOCTA.TA010 " [/list]
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作