You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB LINQ中实现MAX与按NUMERO/100分组的SQL逻辑?

修正后的VB LINQ查询代码

针对你的需求,这里是修正后的VB LINQ代码,既补上了MAL=106的筛选条件,也解决了BC30311类型转换错误:

Dim maxNumbers As List(Of Integer) = (
    From row In MyTable
    Where row.ID_FRUIT = 9 AndAlso row.MAL = 106
    Group row By groupKey = row.NUMERO \ 100 Into Group
    Select Group.Max(Function(r) r.NUMERO)
).ToList()

关键修正点说明:

  • 补上缺失的筛选条件:在Where子句中添加了AndAlso row.MAL = 106,和SQL中的WHERE ID_FRUIT=9 AND MAL=106完全对应。
  • 解决类型转换错误:BC30311错误是因为你之前的代码可能返回了匿名类型列表(比如用Select New { ... }包装结果),而你需要的是List(Of Integer)。这里直接在Select中返回每组的MAX(NUMERO)值,而非匿名类型,调用ToList()时就能直接转换成List(Of Integer)。
  • 整数除法匹配SQL逻辑:SQL中NUMERO/100如果是整数分组(取整),VB中要用\(整数除法运算符),如果是浮点数除法则用/,根据你的分组需求,这里用\更贴合SQL的分组逻辑。

内容的提问来源于stack exchange,提问作者Errias10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:45:20