SQL to Linq: RIGHT JOIN in LINQ

本文关键字:JOIN in LINQ RIGHT to Linq SQL | 更新日期: 2023-09-27 18:24:37

有人能帮我把一些sql查询转换成linq吗?

SELECT dbo.FinnTrans.SanadID, dbo.FinnTrans.Date, dbo.FinnAccount.ID AS AccID,
dbo.FinnAccount.FullId, dbo.FinnAccount.Name, SUM(dbo.FinnTrans.Debit) AS TotalDebit,
SUM(dbo.FinnTrans.Credit) AS TotalCredit
FROM dbo.FinnAccount AS FinnAccount_1 LEFT OUTER JOIN
dbo.FinnAccount ON FinnAccount_1.ParentId = dbo.FinnAccount.ID RIGHT OUTER JOIN
dbo.FinnTrans LEFT OUTER JOIN
dbo.FinnAccount AS FinnAccount_2 ON dbo.FinnTrans.AccID = FinnAccount_2.ID ON
FinnAccount_1.ID = FinnAccount_2.ParentId
WHERE (dbo.FinnTrans.FPID = 7) AND (FinnAccount_2.AccLevel = 3)
GROUP BY dbo.FinnTrans.SanadID, dbo.FinnTrans.Date, dbo.FinnAccount.ID,
dbo.FinnAccount.Name, dbo.FinnAccount.FullId 
HAVING (dbo.FinnTrans.SanadID = 1)

SQL to Linq: RIGHT JOIN in LINQ

您可以在这里查看:http://www.hookedonlinq.com/OuterJoinSample.ashx作为左外部联接的示例。您可以随时交换表以获得左或右

我已经自由地为你的TSQL祝福了一点。

最后两个联接条件在我看来格式不正确,因此无法解析此TSQL。

SELECT
                  [t].SanadID
                , [t].Date
                , [a].ID [AccID]
                , [a].FullId
                , [a].Name
                , SUM([t].Debit) [TotalDebit]
                , SUM([t].Credit) [TotalCredit]
     FROM
                dbo.FinnAccount [a1] 
         LEFT OUTER JOIN
                dbo.FinnAccount [a]
                    ON [a1].ParentId = [a].ID
         RIGHT OUTER JOIN
                dbo.FinnTrans [t]
         LEFT OUTER JOIN
                dbo.FinnAccount [a2] 
                    ON [a].AccID = [a2].ID 
                    ON [a1].ID = [a2].ParentId
     WHERE 
                 [t].FPID = 7
         AND 
                 [a2].AccLevel = 3
     GROUP BY
                   [t].SanadID
                 , [t].Date
                 , [a].ID
                 , [a].Name
                 , [a].FullId  
         HAVING 
                 [t].SanadID = 1