線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:801
推到 Plurk!
推到 Facebook!

关于DBGrid 列的合计

答題得分者是:Mickey
ohmygods
一般會員


發表:9
回覆:11
積分:4
註冊:2005-07-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-05 08:35:22 IP:218.72.xxx.xxx 未訂閱
各位大大好: 用SQL过滤出了想得到的数据后,想对已经显示在DBGrid上的一些数据进行列的合计,例如我按以下过滤 select B.书刊名,B.发数,B.退数,B.日期,B.操作员,B.工号,A.进价,A.结算价 from 书刊信息表as A,日结算表as B where A.书刊名=B.书刊名 and A.书刊名 like"%钱%" and 日期 between :s0 and :s1,想实现合计列:发数 退数
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-05 09:01:38 IP:218.163.xxx.xxx 未訂閱
如果資料筆數不多, 可以考慮直接用 while Loop 加起來. 如果資料筆數很多, 可以考慮用 "sum" / "avg", 如: select sum(B.发数),sum(B.退数),avg(A.进价),avg(A.结算价) from 书刊信息表as A,日结算表as B where A.书刊名=B.书刊名 and A.书刊名 like"%钱%" and 日期 between :s0 and :s1 group by B.书刊名
ohmygods
一般會員


發表:9
回覆:11
積分:4
註冊:2005-07-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-05 09:29:49 IP:218.72.xxx.xxx 未訂閱
Mickey大大好: 这样子的话DBGRID里只有加总的数据,没有每一笔的数据的啊。
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-05 10:08:20 IP:218.15.xxx.xxx 未訂閱
插花, ohmygods您好:用union\union all 具体可参考: 
 
select B.书刊名,B.发数,B.退数,B.日期,B.操作员,B.工号,A.进价,A.结算价 
from forohmygods2 as A,forohmygods1 as B 
where A.书刊名=B.书刊名 and A.书刊名 like"%钱%" and 日期 between :s0 and :s1
union all
SELECT '总计'as 书刊名, B.退数总数 AS 退数, B.进数总数 AS 进数,''as 日期,''AS 操作员,''AS 进价,''AS 结算价
FROM forohmygods2 AS A,(SELECT Forohmygods1.书刊名,Sum([Forohmygods1.退数]) AS 退数总数, Sum([Forohmygods1.进数]) AS 进数总数
FROM Forohmygods1 GROUP BY Forohmygods1.书刊名) AS B
WHERE A.书刊名=B.书刊名 and A.书刊名 like"%钱%" and 日期 between :s0 and :s1;
大概是这样子的吧 或参考:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=74604 ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ 發表人 - deity 於 2005/08/05 10:11:52
ohmygods
一般會員


發表:9
回覆:11
積分:4
註冊:2005-07-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-05 12:47:28 IP:218.72.xxx.xxx 未訂閱
deity大大您好:   按照您给出的程式,省去两个过滤条件 SELECT B.书刊名,B.发数,B.退数,B.日期,B.操作员,B.工号,A.进价, A.结算价 FROM 书刊信息表 AS A ,日结算表 AS B WHERE A.书刊名=B.书刊名 union all SELECT '总计'as 书刊名,  B.发数总数 AS 发数,B.退数总数 AS 退数,''as 日期,''AS 操作员,''as 工号,''AS 进价,''AS 结算价 FROM 书刊信息表 AS A,(SELECT 日结算表.书刊名,Sum(日结算表.发数) AS 发数总数, Sum(日结算表.退数) AS 退数总数 FROM 日结算表 GROUP BY 日结算表.书刊名) AS B WHERE A.书刊名=B.书刊名       没有实现我想要的结果 < src="http://images.blogcn.com/2005/8/5/7/ohmymother,2005080512392.jpg">
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-05 16:49:10 IP:218.15.xxx.xxx 未訂閱
您好:改为如下 
SELECT B.书刊名,B.发数,B.退数,B.日期,B.操作员,B.工号,A.进价, A.结算价 FROM 书刊信息表 AS A ,日结算表 AS B WHERE A.书刊名=B.书刊名
union all
SELECT '总计'as 书刊名, B.发数总数 AS 发数,B.退数总数 AS 退数,''as 日期,''AS 操作员,''as 工号,''AS 进价,''AS 结算价
FROM (SELECT Sum(日结算表.发数) AS 发数总数, Sum(日结算表.退数) AS 退数总数 FROM 日结算表 ) AS B
 
多实践下喔 <> ============================ 为什么经过多年以后,得失的过程如此冷漠 ============================ 發表人 -
ohmygods
一般會員


發表:9
回覆:11
積分:4
註冊:2005-07-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-05 23:16:44 IP:218.72.xxx.xxx 未訂閱
< >< > 加错分了.......... DEITY大大的大恩大德,小弟莫齿难忘。
系統時間:2024-11-25 2:48:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!