這是你將如何與EF做到這一點:
var result=db.Table
.GroupBy(r=>new {
r.Date1,
r.Date2,
r.Date3,
r.col1,
r.col2,
r.Rate1,
r.Rate2,
r.Rate3,
r.product,
r.comment},
p=>new {
p.Amount1,
p.Amount2,
p.Amount3},
(key,vals)=>new {
key.Date1,
key.Date2,
key.Date3,
Amount1=vals.Sum(v=>v.Amount1),
Amount2=vals.Sum(v=>v.Amount2),
Amount3=vals.Sum(v=>v.Amount3),
key.col1,
key.col2,
key.Rate1,
key.Rate2,
key.Rate3,
key.product,
key.comments}
);
輕微的修改,如果你實際上是做它從一個DataTable:
var result=dt.AsEnumerable()
.GroupBy(d=>new {
Date1=d.Field<datetime>("Date1"),
Date2=d.Field<datetime>("Date2"),
Date3=d.Field<datetime>("Date3"),
col1=d.Field<string>("col1"),
col2=d.Field<string>("col2"),
Rate1=d.Field<decimal>("Rate1"),
Rate2=d.Field<decimal>("Rate2"),
Rate3=d.Field<decimal>("Rate3"),
product=d.Field<string>("product"),
comments=d.Field<string>("comments")},
p=>new {
Amount1=p.Field<decimal>("Amount1"),
Amount2=p.Field<decimal>("Amount2"),
Amount3=p.Field<decimal>("Amount3")},
(key,vals)=>new {
key.Date1,
key.Date2,
key.Date3,
Amount1=vals.Sum(v=>v.Amount1),
Amount2=vals.Sum(v=>v.Amount2),
Amount3=vals.Sum(v=>v.Amount3),
key.col1,
key.col2,
key.Rate1,
key.Rate2,
key.Rate3,
key.product,
key.comments}
);
如果你需要的結果作爲一個DataTable,你可以使用其中的許多List To Datatable擴展方法。只需在上述查詢結尾處添加「.ToList()。AsDataTable()」,即可將其恢復到數據表中。
你需要做'GroupBy'一些功能,如日期1,列1等 –
所以這裏有什麼問題或問題@AidaM查詢產生正確的結果..?如果你正在從文本文件加載/讀取數據..這實際上很容易做..你是否熟悉稱爲'控制斷裂處理'谷歌如何使用'GroupBy'如果你從Sql查詢運行 – MethodMan
我剛剛在SQL中測試過這個查詢,但是我的應用程序數據也沒有出現,也沒有進入SQL。我通過將輸入數據保存到數據表來處理輸入數據,並在處理後將其導出爲Excel文件。我需要做什麼SQL查詢示例將使用LINQ或其他方式。 @MethodMan – AidaM