如何查询出这样的效果,求思路
业务编号币别金额
A0001RMB102.00
A0001RMB144.00
A0001RMB1030.00
A0002RMB231.00
A0002USD244.00
A0002USD123.00
A0003RMB111.00
A0003USD222.00
A0003RMB333.00
A0003USD222.00
想要这样的效果
业务编号币别金额
A0001RMB102.00
A0001RMB144.00
A0001RMB103.00
小计349.00
A0002RMB231.00
小计231.00
A0002USD244.00
A0002USD123.00
小计367.00
A0003RMB111.00
A0003RMB333.00
小计444.00
A0003USD222.00
A0003USD222.00
小计444.00
[最优解释]
你是只要小计还是连单项也要一起显示?
[其他解释]
linq还很菜,
帮顶
[其他解释]
按业务编号和币别分组,统计金额
[其他解释]
都要
[其他解释]
实现这个算法很麻烦,如果只提供思路还凑合,直接上代码。
struct Unit
{
string ID,
string Currency,
float Subtotal
}
class A
{
public List<Business> list{get;set;}
public Unit unit{get;set;}
}
from item in list
group by new{item.ID,item.Currency}
into g
select new A
{
list=new List<Business>(),
unit=new Unit(g.Key.ID,g.Key.Currency,sum(g=>g.Amount))
}
接下来循环给每个A对象中的list填充值不用我写了吧。
40分真心太少了!!!
[其他解释]
还有一个只查询一次的方案,不过那就不是Linq了,如果是我自己选我就用那种方法。
[其他解释]
http://bbs.csdn.net/topics/390288751
[其他解释]
SELECT * FROM (SELECT [业务编号],[币别],SUM([金额]) FROM [Table] GROUP BY [业务编号],[币别]) AS T JION [Table] AS D ON T.[业务编号] = D.[业务编号] AND T.[币别] = D.[币别]
[其他解释]
SELECT * FROM (SELECT [业务编号],[币别],SUM([金额]) FROM [Table] GROUP BY [业务编号],[币别]) AS T JOIN [Table] AS D ON T.[业务编号] = D.[业务编号] AND T.[币别] = D.[币别]