全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:922
推到 Plurk!
推到 Facebook!

Table_欄位對應(多筆取第一筆)

答題得分者是:Fishman
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-29 11:18:58 IP:61.218.xxx.xxx 未訂閱
D6+Sql2000 Dear 大大您們好: 結果:台幣付款(自己加台幣欄位) 2Table:1.應付帳款 2.匯率 Table 1:應付帳款欄位 公司別,幣別,應付日期,原幣金額 Table 2:匯率 欄位 幣別,生效日期,銀行買進匯率 資料1: AA USD 2004/01/02 200  AA USD 2004/01/05 300 資料2: USD 2004/01/01 34.2 USD 2004/01/03 34.3 USD 2004/01/04 34.5 USD 2004/01/06 34.4    對應結果 公司別,幣別, 應付日期, 原幣金額, 匯率, 台幣金額 AA USD 2004/01/02 200 34.2 6840 AA USD 2004/01/05 300 34.5 10350 我想用SQL方式顯示 因之前是用程式兩個query再一筆筆寫入StringGrid 時間上似乎慢了很多 所以請問各位大大有否一支Query_ok,直接寫入DBGrid doll_candy
------
doll_candy
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-29 12:47:45 IP:210.65.xxx.xxx 未訂閱
Hi doll_candy,    方法一: 寫個 Function,傳入幣別與日期並回傳匯率
SELECT T1.*,
       GET_EXCHANGE_RATE(T1.CURRENCY,T1.PAYDATE) EXCHANGE_RATE,
       T1.PRICE * GET_EXCHANGE_RATE(T1.CURRENCY,T1.PAYDATE) TWD_AMOUNT
FROM   TABLE1 T1
至於 Function 的寫法,你可以自行找資料,或參考方法二的部分 SQL Command,因為沒有寫過所以‧‧‧
    方法二:
< class="code">
SELECT  T1.*,
        T2.RATE,
        T1.PRICE * T2.RATE TWD_AMOUNT
FROM    TABLE2 T2,
        TABLE1 T1
WHERE   T2.CURRENCY = T1.CURRENCY
AND     T2.EFFECTIVEDATE = (SELECT MAX(EFFECTIVEDATE) FROM TABLE2 WHERE CURRENCY = T1.CURRENCY AND EFFECTIVEDATE <= T1.PAYDATE)
但必須特別注意 Outter Join 部分
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-29 16:30:20 IP:61.218.xxx.xxx 未訂閱
感謝Fishman 我用了方法二結果就出來了 棒級了,謝謝 doll_candy
------
doll_candy
系統時間:2024-05-19 4:44:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!