私はLINQでこれをやろうとしています:
select p.ProductID, p.ArticleCode, SUM((case h.OperationType when 0 then 1 else -1 end) * h.[Count])
from Products p
inner join StockItems s on p.ArticleCode = s.ArticleCode
inner join StockHistorical h on s.ArticleID = h.ArticleID
where h.[Date] < '23/08/2013 11:30:00'
group by p.ProductID, p.ArticleCode
私はこれを持っています:
var products = (from p in e.Products
join s in e.StockItems on p.ArticleCode equals s.ArticleCode
join h in e.StockHistoricals on s.ArticleID equals h.ArticleID
where h.Date < DateTime.Parse("23/08/2013 11:30:00")
group p by p.ProductID into StockResult
select new { });
誰でもどうすればいいのか知っています
SUM((case h.OperationType when 0 then 1 else -1 end) * h.[Count])
LINQで?
ありがとう!
StockResult グループの OperationType プロパティにアクセスできないため、問題は「グループ化」であることを忘れていました。
解決しました!キーは次のとおりです。
let combined = new
{
Product = p,
HistoryCount = (h.OperationType == 0 ? 1 : -1) * h.Count
}