|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
garfield Site Admin
註冊時間: 2003-01-30 文章: 2157
第 1 樓
|
發表於: 星期一 六月 16, 2003 12:19 pm 文章主題: 利用SUM() 來做的合計欄位, 可以一起出現非SUM()的欄位嗎 |
|
|
例如:
以下單純只有合計欄位.
select inv_dat.pro_no, sum(inv_dat.price*inv_dat.quantity) as subtotal from inv_dat left join product on inv_dat.pro_no=product.pro_no where product.pro_no<'1' group by inv_dat.pro_no
以下除了合計欄位, 另外再加上 product.name, 是否一定要將 product.name加到GROUP BY的後面 ??
select inv_dat.pro_no, sum(inv_dat.price*inv_dat.quantity) as subtotal, product.name from inv_dat left join product on inv_dat.pro_no=product.pro_no where product.pro_no<'1' group by inv_dat.pro_no,product.name
如果要同時抓出合計欄位又要抓出一堆其它的欄位, 如果都要放在group by 的後面,那豈不不麻煩死了, 還是另有方法呢? _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
|
elleryq
註冊時間: 2007-06-21 文章: 768
第 2 樓
|
發表於: 星期二 六月 17, 2003 9:04 am 文章主題: Re: 利用SUM() 來做的合計欄位, 可以一起出現非SUM()的欄位嗎 |
|
|
如果是我
我會拆成兩個 SQL 敘述~
先 group by inv_dat.pro_no 取出合計
再用另外一個 select - join 去跟原資料作 Join 即可得到資料+合計~
如果要一行解決,也不是不可能
但是我忘記 vfp 接不接受類似這種寫法
select a.id, a.name, b.qtysum from a left outer join (select a.id, sum(a.qty) as qtysum group by a.id) c order by a.id into cursor cursor1
我也忘記從哪裡看到的了~
|
|
回頂端 |
|
|
garfield Site Admin
註冊時間: 2003-01-30 文章: 2157
第 3 樓
|
發表於: 星期二 六月 17, 2003 11:21 am 文章主題: |
|
|
找到答案了, 原來可以使用子查詢來做, 我在SQL SERVER上試過沒問題, 在VFP尚未試過.
select product.pro_no, (select sum(inv_dat.price*inv_dat.quantity) from inv_dat where inv_dat.pro_no=product.pro_no group by inv_dat.pro_no ) as subtotal, product.name,product.unit from product where product.pro_no<'1'
* 其中的(select sum(...) from ... where 就要設定主查詢的檔案與子查詢的關聯性 )
"感恩阿" _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|