日期判斷的方法... |
尚未結案
|
jacosun
一般會員 ![]() ![]() 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
我有一個資料庫(order.db)欄位 user(型態a,長度不限)、o_date(型態d,長度不限)、money(型態n、長度不限)
資料表如下:
user O_date money
j 2003/4/1 100
j 2003/4/2 150
~
j 2003/4/30 110
k 2003/4/1 120
. ~ .
k 2003/4/31 130
j 2003/5/1 120
. ~ .
j 2003/5/31 180
小弟我要怎麼能才做出user j、k各在四月分總共採購多少?五月採購多少?
如果寫 Query.sql.add(' select sum(money) from order.db ');
Query.sql.add(' where o_date >= 2003/4/1 and o_date <=2003/4/30 ');
Query.open;
這樣只能把4/1~4/30號的money總加起來,不能分是誰的??
請問我要怎麼寫才能分出誰在幾月份的money是多少呢??
再此先謝謝各位大大了...
|
T.J.B
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
jacosun
一般會員 ![]() ![]() 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
引言: 參考一下 Query.sql.add(' select sum(money),user,o_date from order.db '); Query.sql.add(' group by user,o_date '); Query.sql.add(' having o_date >= 2003/4/1 and o_date <=2003/4/30 '); Query.open; 天行健 君子當自強不息~~@.@group by <== 請問這是什麼意思?? 當我Query.sql.add(' select money,user,o_date from order.db '); Query.sql.add(' where o_date >=2003/4/1 and o_date <=2003/4/31'); Query.open 這樣資料可以查詢得出來,但是我修改成大大的程式,我的卻出現個錯誤訊息 "capaility not supported" 請問是那出了錯丫?? 拍謝..因為是程式新手也剛在學delphi 所以會有很多問題 請多包含.. |
T.J.B
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
|
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
jacosun
一般會員 ![]() ![]() 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
|
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
補充 :
Local SQL (paradox) 是支援 having 的,不過放的 having 的條作只針對統計欄位 例如 :
Query.sql.Text := 'select user,sum(money) from order.db ' 'where o_date >= 2003/4/1 and o_date <=2003/4/30 ' 'group by user ' 'having sum(money) > 1000' Query.Active := true;就只會列出四月份總計money大於1000的user |
T.J.B
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:532 積分:497 註冊:2002-08-14 發送簡訊給我 |
引言: 補充 : Local SQL (paradox) 是支援 having 的,不過放的 having 的條作只針對統計欄位 例如 :真是一語驚醒網中人 喔不對~~是夢中人< >< > 我之前一直以為having可以針對所group by 出來的資料做任意的條件選擇 原來只能針對統計欄位 喔~~~~真糗< >< > 天行健 君子當自強不息~~@.@Query.sql.Text := 'select user,sum(money) from order.db ' 'where o_date >= 2003/4/1 and o_date <=2003/4/30 ' 'group by user ' 'having sum(money) > 1000' Query.Active := true;就只會列出四月份總計money大於1000的user
------
天行健 君子當自強不息~~@.@ |
jacosun
一般會員 ![]() ![]() 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
引言: 補充 : Local SQL (paradox) 是支援 having 的,不過放的 having 的條作只針對統計欄位 例如 :哈~~大大真是厲害....我最後面也是要做這樣子的動作說 哈~~真素厲害 只不過..小弟用大大的程式碼下來try了幾次,都是 type mismatch in expression 的錯誤... 嗚嗚...新手都被程式玩....Query.sql.Text := 'select user,sum(money) from order.db ' 'where o_date >= 2003/4/1 and o_date <=2003/4/30 ' 'group by user ' 'having sum(money) > 1000' Query.Active := true;就只會列出四月份總計money大於1000的user |
wnhoo
高階會員 ![]() ![]() ![]() ![]() 發表:75 回覆:443 積分:198 註冊:2003-04-22 發送簡訊給我 |
|
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
chih
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
如果你的o_date可以改為C,長度8的話,這樣日期就變為20030401 ,20030402
我有一個更好的做法如下:
Query.sql.add(' select user,sum(money) from order.db ');
Query.sql.add(' where SUBSTRING(o_date FROM 1 FOR 6=' #39 '200304' #39);//這樣就可以算出四月份個人金額了
Query.sql.add(' group by user');
Query.open;
另外個人在日期上比較常用字串而不用Date型態,用Date還要轉來轉去很麻煩...
TRY TRY SEE
引言: 我有一個資料庫(order.db)欄位 user(型態a,長度不限)、o_date(型態d,長度不限)、money(型態n、長度不限) 資料表如下:發表人 - chih 於 2003/04/23 17:20:25 |
jacosun
一般會員 ![]() ![]() 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |