展平表数据

时间:2013-02-14 13:28:40

标签: linq tsql

我的环境是VS2012,C#

主表:Journal (JournalId int)

详细信息表:JournalLine (JournalId int, AccountId int, Debit money, Credit money)

每个日记帐记录都有两个日记帐记录,一个用于借记,另一个用于贷记。

我的报告需要以下数据:

每个期刊记录

JournalId, AccountId (Debit > 0), AccountId (Credit > 0)

我想要一份借记帐户和相应的信用帐户清单。

有没有办法使用LINQ或TSQL来获取这些数据? 感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用Linq组联接来获取按日记帐分组的行

var query = from j in db.Journal
            join l in db.JournalLine 
                 on j.JournalId equals l.JournalId into lines
            select new {
                j.JournalId,
                DebitAccount = lines.Single(x => x.Debit > 0).AccountId,
                CreditAccount = lines.Single(x => x.Credit > 0).AccountId
            };