tab表的结构如下:
公司 单据号 采购类型 采购员 物资名称 数量
公司一 002 采购 张三 电脑 10
公司一 002 采购 张三 打印机 2
公司三 003 采购 李四 打印纸 20
公司四 004 采购 王五 电脑 2我想统计后的结果如下:物资名称 采购次数(根据单据号) 物资项数(统计物资)
公司一 1 2
公司三 1 1
公司四 1 1
公司 单据号 采购类型 采购员 物资名称 数量
公司一 002 采购 张三 电脑 10
公司一 002 采购 张三 打印机 2
公司三 003 采购 李四 打印纸 20
公司四 004 采购 王五 电脑 2我想统计后的结果如下:物资名称 采购次数(根据单据号) 物资项数(统计物资)
公司一 1 2
公司三 1 1
公司四 1 1
FROM tab GROUP BY 公司 ORDER BY COUNT(物资名称) DESC
create table #Tmp
(
cn varchar(50),
num varchar(50),
pname varchar(50)
)insert into #Tmp values('aa','001','x')
insert into #Tmp values('aa','001','y')
insert into #Tmp values('aa','005','y')
insert into #Tmp values('bb','002','x')
insert into #Tmp values('cc','003','x')
select cn,count(distinct(num)),COUNT(cn) as c
from #Tmp
group by cndrop table #Tmp
group r by r.Field<string>(0) into g
select new { company = g.Select(R => R.Field<string>(0)),
C_Count = g.Select(R => R.Field<string>(1)).GroupBy(I => I).Count(),
c_c = g.Select(R => R.Field<string>(4)).GroupBy(I => I).Count() };