對加總後的欄位再做運算 |
答題得分者是:pedro
|
selo
一般會員 發表:3 回覆:5 積分:1 註冊:2008-03-11 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
利用 union 來做
select 客戶名稱,(SUM(已入帳)-SUM(支出)) AS 結餘,(SUM(已報出) - SUM(支出)) AS 可能最後餘額 from 對帳單 group by 客戶名稱 union select '合計', (SUM(已入帳)-SUM(支出)) AS 結餘,(SUM(已報出) - SUM(支出)) AS 可能最後餘額 from 對帳單 註: '合計' 就是一個字串, 不是變數或欄位名稱 ps:不好意思, 回本文後才發現已經有人先回了
編輯記錄
P.D. 重新編輯於 2008-03-14 01:54:54, 註解 無‧
|
selo
一般會員 發表:3 回覆:5 積分:1 註冊:2008-03-11 發送簡訊給我 |
感謝大家的回應 不過現在還有個問題就是說
那個合計兩個字是用 " "來包住他嗎? 如果用' ' 他會出現錯誤 另外它會出現參數太少 預期個數1 好奇怪 我並沒有用變數啊- - adoquery1.close; adoquery1.sql.clear; s:='select 客戶名稱,(SUM(已入帳)-SUM(支出)) AS 結餘,(SUM(已報出) - SUM(支出)) AS 可能最後餘額 from 對帳單 group by 客戶名稱' ; s:=s ' union select "合計",(SUM(已入帳)-SUM(支出)) AS 結餘,(SUM(已報出) - SUM(支出)) AS 可能最後餘額 from 對帳單'; adoquery1.Sql.add(s); adoquery1.open; ===================引 用 P.D. 文 章=================== 利用 union 來做 select 客戶名稱,(SUM(已入帳)-SUM(支出)) AS 結餘,(SUM(已報出) - SUM(支出)) AS 可能最後餘額 from 對帳單 group by 客戶名稱 union select '合計', (SUM(已入帳)-SUM(支出)) AS 結餘,(SUM(已報出) - SUM(支出)) AS 可能最後餘額 from 對帳單 註: '合計' 就是一個字串, 不是變數或欄位名稱 ps:不好意思, 回本文後才發現已經有人先回了 |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
1.union前後的欄位型態及欄位數需一致,由第二個select來看,合計需加單引號
2.query元件會把sql語法有':'(冒號之元)之後當做參數名稱,有可能某些中文字的其中一碼是′:',建議資料欄位名稱使用英文比較不會有延伸問題. http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=92798 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
嗯! 仔細想想, 你要的功能好像做不太到, 我給的sql也有錯, 使用 union , 其中 select 後的欄位必須一致且對應才可以, 否則就會有錯誤, 所以按 union 的做法, 只能分別算出A的總和, B的總和, 要算出 A+B 的總和, SQL的語法必須為
select sum(xxxxxx) as xxx, sum(xxxx) as xxxx from .....即與 上段的 select 客戶名稱, sum(xxxx)..... 產生欄位不一致了, 附上一個 union 實作的圖片給你參考, 同時說明 select '合計" 的結果顯示出來是怎樣的畫面 |
selo
一般會員 發表:3 回覆:5 積分:1 註冊:2008-03-11 發送簡訊給我 |
s:='select 客戶名稱,(SUM(已入帳)-SUM(支出)) AS 結餘,(SUM(已報出) - SUM(支出)) AS 可能最後餘額 from 對帳單 group by 客戶名稱' ;
s:=s ' union select ''合計'',(SUM(已入帳)-SUM(支出)) AS 結餘,(SUM(已報出) - SUM(支出)) AS 可能最後餘額 from 對帳單 order by 結餘'; 我是照前輩們的話自己加以修改就得到我要的東西了 主要合計那邊是兩個 ' ' 這樣SQL才不會說有錯誤 ===================引 用 P.D. 文 章=================== 嗯! 仔細想想, 你要的功能好像做不太到, 我給的sql也有錯, 使用 union , 其中 select 後的欄位必須一致且對應才可以, 否則就會有錯誤, 所以按 union 的做法, 只能分別算出A的總和, B的總和, 要算出 A B 的總和, SQL的語法必須為 select sum(xxxxxx) as xxx, sum(xxxx) as xxxx from .....即與 上段的 select 客戶名稱, sum(xxxx)..... 產生欄位不一致了, 附上一個 union 實作的圖片給你參考, 同時說明 select '合計" 的結果顯示出來是怎樣的畫面 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |