請教一個範圍判斷式SQL語法 |
尚未結案
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
請教各位前輩﹕ 作業環境﹕Delphi6 + Access資料庫形態
欄位說明﹕IDNO, NAME, SALARY, TAX
SALARY欄位為個人薪資﹐TAX欄位為個人所得稅﹐但因政府要求﹐稅金報表需按如下要求設計﹕
IDNO NAME SALARY FREETAX TAX(5%) TAX(10%) TAX(15%) TAX(20%) TAX ====================================================================== 0001 XIN 526205 200000 326205 0 0 0 16310 0002 YU 959649 200000 500000 259649 50965 ======================================================================也就是說報表的顯示方法需要根据200000(不打稅)﹐200001~700000(打5%稅)﹐700001~1900000(打10%稅)﹐1900001~3700000(打15%稅)﹐3700001以上(打20%稅)這樣的原則﹐稅金欄位已經計算完成﹐但在報表制作時該如何下SQL語法才能達到以上的顯示結果﹒ 薪資範圍和稅金比例已在另一個資料表建立﹐可通過另一個資料表直接取得﹒ 小弟以前的做法是將每個人的薪資和各稅金比例用SQL語法新增一個Table﹐然后再從這個Table中取出﹐但因資料筆數較多﹐在效率上明顯下降﹐故想請教是否有直接的SQL語法可查詢出這樣的結果﹒ 感謝各位﹗ =================================
------
忻晟 |
chateau_frank
一般會員 ![]() ![]() 發表:20 回覆:32 積分:10 註冊:2005-07-07 發送簡訊給我 |
IDNO NAME SALARY FREETAX TAX(5%) TAX(10%) TAX(15%) TAX(20%) TAX
======================================================================
0001 XIN 526205 200000 326205 0 0 0 16310
0002 YU 959649 200000 500000 259649 50965
====================================================================== 小弟建議
用迴圈跑每個人的薪資計算sql,然後在放入時只要小於零的欄位都等於零。
select idno, name, salary, freetax, sum(salary-20000) as tax5, sum(salary-70000) as tax10, sum(salary-190000) as tax15, sum(salary-370000) as tax20 , tax from salarytable 各欄位放進列表的過程中判斷....
if tax5 < 0 then
tax5 = 0
end if tax10< 0 then
tax10 = 0
end
依此類推..... 由於另一個table的欄位不知為何,小弟先以您提出的表來假設另一個table的攔位,若回答錯誤請多原諒
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi cashxin2002 版大, 大致如下:
TRANSFORM SUM(TAXDIST) AS SUMOFAMOUNT SELECT IDNO, NAME, SALARY, TAX FROM (SELECT S.ID AS SID, S.IDNO, S.NAME, S.SALARY, S.TAX, T.ID AS TID, T.TAXNAME, T.TAXRATE, IIF(S.SALARY > T.MINSALARY,IIF(S.SALARY >= T.MAXSALARY,T.MAXSALARY - T.MINSALARY,S.SALARY-T.MINSALARY),0) AS TAXDIST FROM TAX T, SALARY S) C GROUP BY IDNO, NAME, SALARY, TAX PIVOT FORMAT(SID,TID)執行結果請見以下連結: http://delphi.ktop.com.tw/loadfile.php?TOPICID=23432445&CC=524055
------
Fishman |
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |