0
任何人都可以帮我一个LINQ查询。我已经转换的大部分,但我必须在存储过程中的子查询,我无法弄清楚如何做到这一点..LINQ与子选择查询使用sum和group by?
基本上这是旧的存储过程(截断为便于)
SELECT M.Period AS 'Period' ,
C.Code AS 'Group' ,
C.ClientCode AS 'Code' ,
C.ClientName AS 'Name' ,
(SELECT SUM(Amount) AS Expr1
FROM M
WHERE (ClientCode = C.ClientCode)
GROUP BY ClientCode
) AS 'Amount' ,
你可以从子查询上面看到的是,像这样
SELECT SUM(Amount) AS Expr1
FROM M
WHERE (ClientCode = C.ClientCode)
GROUP BY ClientCode
) AS 'Amount'
所以我已经做了我所有的连接和我有这个迄今为止,它的工作原理。
var test = from c in C join h in H on c.Code
equals h.Code join m in M on c.ClientCode
equals m.ClientCode
select new
{
Period=m.Period,
Group=c.Code,
Code= c.ClientCode,
Name= c.ClientName,
<-- Here is where i need the sub select query above -->
};
但我在如何做子查询的损失。您可以在旧的存储过程中看到该列的名称为金额。
我将不胜感激任何意见或帮助
感谢
哇!谢谢Raymund!是的,只是把它放在..它的工作原理:-)谢谢....你会这么好解释为什么我需要Expr1,然后在第一个()另一个Expr1?当然,如果我删除EXPR1它失败..但我不完全理解为什么它有:-) – Martin 2010-11-17 21:17:42
Expr1是计算总和的变量,第二个Expr1暴露它 – Raymund 2010-11-17 21:43:54