回答

收藏

具有GROUP和SUM的LINQ查询

技术问答 技术问答 220 人阅读 | 0 人回复 | 2023-09-14

请帮助我处理使用带GROUP和SUM的LINQ查询的问题。
3 R- t* Y4 s3 T// Query the databaseIEnumerable[B] best_sellers = from bs in (db.MYDATABASE).Take(25)                      where bs.COMPANY == "MY COMPANY"                                       group bs by bs.PRODCODE into g                                       orderby g.Sum(g.MQTY)                                       select new BestSeller()()                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    product_code = ,                                                                                                                                                                        product_description = ,                                          total_quantity =                            ;我希望:$ E" m5 a+ e( R5 D% m4 k5 t+ j
从db.MYDATABASE获得前25个项目+ s# s7 d3 v: O2 X$ n
按所有结果bs.PRODCODE分组1 {2 e, O' F1 f" w5 p& S0 D
按每个bs总和排序。
; @% y, E" x2 a0 j: p公司是我的公司
+ T- m* R0 {0 `然后把数据管道给我BestSeller()对象中
我很困惑,因为一旦我把它加进去,group在混音中,我的bs变量变得无用。3 z& s$ s, r/ t; _
                                                                6 O, U+ o/ }9 Q' ^& z
    解决方案:                                                               
# q! t' b# _! ~8 r1 q' a                                                                我很困惑,因为一旦我把组添加到混合物中,我的bs变量变得无用。/ P+ a& C, X5 k
是的,因为你不再有单个项目了-您现在正在处理一系列项目组    。您可以为每个组获得第一项,我认为这是获得描述的有效方法吗?8 ^% m3 ]+ M& x
var query =  from bs in db.MYDATABASE.Take(25)      where bs.COMPANY == "MY COMPANY"             group bs by bs.PRODCODE into g             orderby g.Sum(x => x.MQTY)             select new BestSeller                                              product_code = g.Key,                product_description = g.First().DESCRIPTION,                total_quantity = g.Sum(x => x.MQTY)          请注意,如果没有指定顺序, db.MYDATABASE Top你可能想要什么?
" B; [/ T$ c! V& Y2 j7 _3 R3 H8 A% ]# Kfrom bs in db.MYDATABASE.OrderByDescending(x => x.Price).Take(25)或者类似的东西。请注意,如果这些公司没有 MY COMPANY公司,那最终会没有结果的…3 o# U+ g: a9 z) j/ k% I0 n7 c9 p' R
或者,如果你想排名前25的畅销书,你想在最后参与:7 K  T1 _" ]! j; ~; n
var query =  from bs in db.MYDATABASE             where bs.COMPANY == "MY COMPANY"             group bs by bs.PRODCODE into g             orderby g.Sum(x => x.MQTY) descending             select new BestSeller                                              product_code = g.Key,                product_description = g.First().DESCRIPTION,                total_quantity = g.Sum(x => x.MQTY)          var top25 = query.Take(25);
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则