根据给定的价值获取行

发布于 2025-02-13 22:12:26 字数 548 浏览 0 评论 0原文

我将MSSQL表作为给定图像。我想知道如何从表Tblspace返回行,“可用”行的总和大于使用linq的值大于或等于给定的值。另外,有1到5的填充顺序。感谢

表格捕获和数据:> tblspace

我到目前为止尝试过的

1)。如果我以9,000为价值,则应仅返回Vienguard Row(9,000< 10,000)

2)。如果我以23,000为价值,则应同时返回Vienguard和Halestorm行(23,000< 10,000+15,000)

3)。如果我以35,000为价值,则应返回Vienguard,Halestorm和Quarts行(35,000< 10,000+15,000+20,000)

I have mssql table as the given image. I want to know how can I return rows from the table tblSpace that the sum of "Available" rows is greater than or equal to given value using Linq. Also there is a order of filling from 1 to 5. Thanks

Table capture and data:> tblSpace

What I've tried so far

1). If I pass 9,000 as value it should return only Vienguard row (9,000 < 10,000)

2). If I pass 23,000 as value it should return both Vienguard and Halestorm rows (23,000 < 10,000+15,000)

3). if I pass 35,000 as value it should return Vienguard, Halestorm and Quarts rows (35,000 < 10,000+15,000+20,000)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

荆棘i 2025-02-20 22:12:27

好吧,我认为您需要这样的东西吗?

var sum = 0;
var result = tblSpace.OrderBy(x => x.Available).TakeWhile(x => (sum += x.Available) <= value).ToList();

编辑
如果您需要额外的价值,如果超出价值,请添加

var result = tblSpace.OrderBy(x => x.Available).TakeWhile(x => (sum += x.Available) - x.Available < value).ToList();

Alright so I think you need something like this?

var sum = 0;
var result = tblSpace.OrderBy(x => x.Available).TakeWhile(x => (sum += x.Available) <= value).ToList();

EDIT
In case you want an extra value if it exceeds you add

var result = tblSpace.OrderBy(x => x.Available).TakeWhile(x => (sum += x.Available) - x.Available < value).ToList();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文