SQL語法可以做到這點嗎?? |
尚未結案
|
alvin0921
一般會員 發表:7 回覆:7 積分:2 註冊:2004-02-16 發送簡訊給我 |
請問先進:
這是我的datebase:我使用的是MySQL
ID - Name - merit 001 - 蘋果 - 20000
002 - 香蕉 - 300
003 - 芒果 - 150000
004 - 蘋果 - 500000
005 - 蓮霧 - 370000
006 - 香蕉 - 200
007 - 蓮霧 - 700000 請問有 sql 語法可將相同的水果先做加總再依數值做計算嗎??
加總後
蘋果 - 520000
香蕉 - 500
芒果 - 150000
蓮霧 - 1070000 希望可以秀出
蘋果 - 52 萬
香蕉 - 500 元
芒果 - 15 萬
蓮露 - 1.07 百萬
|
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
|
alvin0921
一般會員 發表:7 回覆:7 積分:2 註冊:2004-02-16 發送簡訊給我 |
|
luowy651
高階會員 發表:257 回覆:313 積分:114 註冊:2003-04-09 發送簡訊給我 |
不知这对你有否帮助:
UPDATE table
SET newmerit = CONVERT(varchar, merit * 0.000001) '百万元'
WHERE (merit >= 1000000)
UPDATE table
SET newmerit = CONVERT(varchar, merit * 0.0001) '万元'
WHERE (merit >= 10000 AND merit < 1000000) --------------
抛砖引玉
-------------- 發表人 - luowy651 於 2004/05/07 12:43:05
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi alvin0921, 你可以先參考以下範例
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34738
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=49031
MYSQL 中是否有 Storde Procedure 可用?
若有,仿上述兩篇文章,寫一個 function 然後用類似以下語法即可
SELECT NAME, YOUR_FUNCTION_NAME(MERIT) AS MERIT FROM (SELECT NAME, SUM(MERIT) AS MERIT FROM TABLE GROUP BY NAME)若無 Stored Procedure 可用,那就在 delphi 中,用 Calculated Field 來作 發表人 -
------
Fishman |
alvin0921
一般會員 發表:7 回覆:7 積分:2 註冊:2004-02-16 發送簡訊給我 |
引言: Hi alvin0921, 你可以先參考以下範例 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=34738 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=49031 MYSQL 中是否有 Storde Procedure 可用? 若有,仿上述兩篇文章,寫一個 function 然後用類似以下語法即可 SELECT NAME, YOUR_FUNCTION_NAME(MERIT) AS MERIT FROM (SELECT NAME, SUM(MERIT) AS MERIT FROM TABLE GROUP BY NAME) 若無 Stored Procedure 可用,那就在 delphi 中,用 Calculated Field 來作 發表人 - Fishman 於 2004/05/07 12:58:15請問 Calculated Field 應要怎麼運用才可達到此目的?? |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi alvin0921, 1.在 DataSet 中,先 Double Click,再出現的框框中按下滑鼠右鍵,先選擇 Add All Fields,先將 select 的欄位加入(merit 的 Summary 也必須加入),再按下滑鼠右鍵選擇 New Field,給定欄位名稱,並指定 TYPE 為 String,Size 自行決定,重要的是 field Type 必須設為 Calculated,
2.DataSet 中設定 AutoCalcFields 為 True;
3.在 DataSet 的 OnCalcFields 事件中去乎將上述反例程式的 function(假設名稱為 ConvertFunction)
procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet); begin DataSet.FieldByName('CalcFields').AsString := ConvertFunction(DataSet.FieldByName('merit').AsInteger); end;紅色字體部分自行修改,再試試看唄,Good Luck !! ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
alvin0921
一般會員 發表:7 回覆:7 積分:2 註冊:2004-02-16 發送簡訊給我 |
引言: Hi alvin0921, 1.在 DataSet 中,先 Double Click,再出現的框框中按下滑鼠右鍵,先選擇 Add All Fields,先將 select 的欄位加入(merit 的 Summary 也必須加入),再按下滑鼠右鍵選擇 New Field,給定欄位名稱,並指定 TYPE 為 String,Size 自行決定,重要的是 field Type 必須設為 Calculated, 2.DataSet 中設定 AutoCalcFields 為 True; 3.在 DataSet 的 OnCalcFields 事件中去乎將上述反例程式的 function(假設名稱為 ConvertFunction) procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet); begin DataSet.FieldByName('CalcFields').AsString := ConvertFunction(DataSet.FieldByName('merit').AsInteger); end; 紅色字體部分自行修改,再試試看唄,Good Luck !! ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------但如此一來以sql查詢將會出現問題,因每次查詢所秀出的欄位數並不固定 sql是動態產生的 |
alvin0921
一般會員 發表:7 回覆:7 積分:2 註冊:2004-02-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |