groupby 客户名称和月份行么
可是数量怎么相加呢,我用的是lambda
@淘@淘:
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<St> l = new List<St> { new St{Name="A",Num=3,Yue="一月"}, new St{Name="B",Num=2,Yue="一月"}, new St{Name="A",Num=5,Yue="一月"}, new St{Name="B",Num=2,Yue="一月"}, new St{Name="A",Num=2,Yue="二月"}, new St{Name="B",Num=1,Yue="二月"}, new St{Name="A",Num=2,Yue="二月"} }; var q = l.GroupBy(e => new { e.Name, e.Yue }) .Select( g => new { 客户名称 =g.Key.Name, 数量 = g.Sum(e => (Int32)(e.Num)), 日期 = g.Key.Yue, } ); foreach (var item in q) { Console.WriteLine(item.客户名称 + "----" + item.数量 + "----" + item.日期); } } } class St { public string Name { get; set; } public int Num { get; set; } public string Yue { get; set; } } }
@淘@淘:
@淘@淘: 数量那里不用强制转换(Int32)也可以
@芒果の冰: 不行啊,有没有好的方法啊,在视图里能实现的Sum求和
@淘@淘:
select 客户名称,sum(num) as 数量,日期 from 表 group by 客户名称,日期
@芒果の冰: 你看我的视图语句:
SELECT CONVERT(datetime, CONVERT(varchar(20), dbo.Rec_SalesOrder.AutitDate, 111)) AS AutitDate, SUM(dbo.Rec_SalesOrder_Sub.Quantity) AS TotleQuantity, dbo.Mer_Package.Barcodes, dbo.Mer_Product.UserCode, dbo.Mer_Product.Name, dbo.Mer_Package.ProductID, dbo.Rec_SalesOrder.StoresID FROM dbo.Rec_SalesOrder INNER JOIN dbo.Rec_SalesOrder_Sub ON dbo.Rec_SalesOrder.ID = dbo.Rec_SalesOrder_Sub.ParentID INNER JOIN dbo.Mer_Package ON dbo.Rec_SalesOrder_Sub.PackageID = dbo.Mer_Package.ID INNER JOIN dbo.Mer_Product ON dbo.Mer_Package.ProductID = dbo.Mer_Product.ID GROUP BY dbo.Rec_SalesOrder.OrderStatus, dbo.Mer_Package.Barcodes, dbo.Mer_Product.UserCode, dbo.Mer_Product.Name, CONVERT(datetime, CONVERT(varchar(20), dbo.Rec_SalesOrder.AutitDate, 111)), dbo.Rec_SalesOrder.StoresID, dbo.Mer_Package.ProductID HAVING (dbo.Rec_SalesOrder.OrderStatus = 0)
是有的 可是就是查出来都是分着的
@淘@淘: 太乱了 看不出来查出来是什么样的 也没有表结构
@芒果の冰:
@淘@淘: 你肯定是有的列值不同 才没有办法 group by 的
@芒果の冰: 什么意思,
@淘@淘: 你列不同值太多了 sql不知道与哪列合并
@芒果の冰: 那像这样的我怎么才能在视图里去掉不用的“分组依据”呢,我只要去掉一个就都去掉了
@芒果の冰: 而且我前边的有查询条件,去掉“分组依据”就会报错了
@淘@淘: 你现在视图查出来是正确的
就好比你的 AutitDate 每行都不同 你让SQL怎么为你分组
AutitDate相同了Barcodes又不同了 没法给你划分到一起
@芒果の冰: 可是我现在不想根据那些分组,我只想根据ProductId这列分组,我要怎么办呢
@淘@淘:
去掉多余的列
@芒果の冰: 那我别的列是需要显示的啊
@淘@淘:
就你这四行数据 就算合并到一起 你AutitDate 要显示哪行的 TotleQuantity 要显示哪行的呢
@芒果の冰:
我的AutitDate 不显示,然后相同的TotleQuantity累加,根据ProductID分组
@淘@淘:
充值金额 充值人 银行
26 张三 工商银行
24 张三 农商银行
现在我将两行合并得出 : 张三 充值了 50 元
此时页面上还要显示他这50元是从哪个银行冲的,你说你怎么显示
@芒果の冰: 那就不显示银行嘛 就显示他冲50元
@淘@淘: 对啊 那你就不显示那些列啊 不就可以了
@芒果の冰: 可是那时要求显示的列啊
@淘@淘: 你这不自相矛盾吗
@淘@淘:
充值金额 充值人 银行
26 张三 工商银行
24 张三 农商银行
现在我将两行合并得出 : 张三 充值了 50 元
现在老板要求显示50元是从哪个银行冲的