C#对SQL中数据库的某几个字段结合进行数量统计

C#对SQL中数据库的某几个字段组合进行数量统计
我要在C#中操作表
比如 我在数据库中表是这样的
籍贯    性别  身高 
江苏    男       183
上海     女     182
江苏      女     178
湖南      女     180
江苏     男      183
我现在就是想统计籍贯,和性别这两个字段组合起来各个参数的数目
就是说江苏男有多少,上海女有多少,江苏女有多少。。。
这个语句怎么写?
急求
------解决思路----------------------
select count(*),籍贯,性别 from xxx group by 籍贯,性别
------解决思路----------------------
加个group by不就行了
select 籍贯,性别,count(*) from 表 group by 籍贯,性别
------解决思路----------------------
select 籍贯,性别,count(1) from 表 group by 籍贯,性别 order by  籍贯,性别
------解决思路----------------------
使用sql语句读取到DataTable中,
参见:http://blog.csdn.net/duanzi_peng/article/details/17414629
------解决思路----------------------
引用:
Quote: 引用:

count(*)不就是数量吗
可以给它取个别名
select 籍贯,性别,count(*) as 人数  from 表 group by 籍贯,性别


我的意思是用这样的语句,最后在C#中填充到datatable里面的时候格式是 籍贯 性别 数量 么

对啊,datatable里默认列名不就是数据库的列名吗
你可以直接在SQL语句里指定别名,也可以等读到datatable里之后修改列名
------解决思路----------------------
上面的汇总sql都有了,返回的datatable 写到excel,可以用下面这个帖子
http://bbs.csdn.net/topics/390201171
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

count(*)不就是数量吗
可以给它取个别名
select 籍贯,性别,count(*) as 人数  from 表 group by 籍贯,性别


我的意思是用这样的语句,最后在C#中填充到datatable里面的时候格式是 籍贯 性别 数量 么

对啊,datatable里默认列名不就是数据库的列名吗
你可以直接在SQL语句里指定别名,也可以等读到datatable里之后修改列名


这是2个问题:

1.sql查询问题:
直接group by即可,楼上都是正确的。自己在数据库中先试一下查询结果,正确即可。

2.DataTable导出到Excel的问题:
这要使用第三方代码才行的,也有很多方案,超大数据量(比如几百万条记录的DataTable)和小数据量的导出(小于几万条),效率也不一样。有些是要使用Excel.EXE,就是依赖office,要安装office的。有些是独立的,直接引用现成的dll即可。
有些办法可以定制各种漂亮的表头、样式、自定义单元格等等,有些则不能附加样式。

需要什么样的效率,要实现怎样的效果,就要看实际情况了。