[英]Find a value from Datatable compare with its max() value - LINQ Query
感謝您的幫助。 實際上,我有一個數據表的發票,具有諸如invoice_no,Invoice_dt,material_name,unit_price等字段。
但是我需要找到該物料的unit_price,這是該物料{max(invoice_dt)}的最后日期輸入,可以嗎?
var query = from t1 in invoice
where t1.material_name == MyMaterial && t1.invoice_dt == (invoice.max(invoice_dt))
select t1.unit_price;
從上面我的意圖是獲取unit_price的最新日期條目,它將是當前的市場價格...
var maxDate = invoice.Max(t1 => t1.invoice_dt);
var query = from t1 in invoice
where t1.material_name == MyMaterial && t1.invoice_dt == maxDate)
select t1.unit_price;
如果要檢索最大日期項目的價格,並按物料名稱分組發票:
var groupedInvoices = invoice.GroupBy(t1 => t1.material_name);
foreach (var group in groupedInvoices)
{
var maxDate = group.Max(t1 => t1.invoice_dt);
var maxDateItem = group.Single(item => item.invoice_dt == maxDate);
Console.WriteLine(maxDateItem.unit_price);
}
我可以想到的最簡單的方法是使用擴展方法:
var query = invoice.SingleOrDefault(item => item.invoice_dt ==
invoice.Where(inv => inv.material_name == MyMaterial).
Max(inv => inv.invoice_dt)).Select(i => i.unit_price);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.