作者:
shadow0828 (Vugtis Of Shadow)
2014-08-17 16:57:03版上先進大家好
一直寫不出來,想請教版上先進....
要用Linq呼叫一個資料庫裏面的總和值..
TABLE為
TABLEa TABLEb
Pro cha Pro
A 12 A
B 6 B
A 14 C
C 4
B 8
SQL語法是 :
Select B.Pro,
sum(A.Cha) as Sum
From TABLEb as B, TABLEa as A
Where B.Pro = A.Pro
爬過網路文後的推估Linq C#寫法是
Var Q = (From o in TABLEa
Where o.Pro == this.Pro
Select o).First();
OutPut = Q.Sum(i => i.cha);
但是寫到o.cha的時候沒辦法跳Sum的指令....
強制寫上的話會告知漏掉Using參考
但我Using 有寫到 system.Linq;
想不出來是到底漏掉哪個Using
想請教版上對於Linq的先進該怎麼寫....
還請先進們不吝賜教qq
作者: iterator (rotareti) 2014-08-17 21:40:00
你的 SQL 怪怪的, 你確定你要的是這樣的 query?可以先用管理工具試試看這樣的 query 是不是符合需要至於LINQ的問題,前一行用了First()之後,就只剩下"一個"直接是單一筆資料物件, 自然就沒有 sum() 了
作者:
J002 (阿里山 我來了XD~)
2014-08-17 22:50:00First()完應該不能sum…最後的.First()改成Sum(o => o.cha)試試…
就你提供的資料和 TSQL 來看,根本不需要 TableB,直接對 TableA 就可以得到你要的結果 ~~
作者: Cingyea ( ) 2014-08-18 11:14:00
(from r in TABLEa select r.cha).Sum()或者(from r in TABLEa select r).Sum(r=>r.cha)
作者: iterator (rotareti) 2014-08-18 18:03:00
理由我已經寫了,用了 First() 之後,就沒有後面的 Sum()試著不要用 "var", 你應該就能理解出了什麼事情..