如何使用BETWEEN
,COUNT
和ALIAS
显示同一列中数字范围的数字范围。
比如10-19,20-29,e.t.c
请帮助我!我被困了
我尝试过:
Select Sex, Count(Age) as '10-19' from Table1
Where AGE BETWEEN 10 and 19
GROUP BY SEX
上面的代码对我来说很好。
但对于其他数字范围,我被困住了。请我在论坛中的优秀程序员请帮助!! 数据如下
AGE Sex
----------
45 female
45 male
42 male
40 male
24 male
45 female
10 male
25 male
35 female
23 male
45 male
43 male
45 male
44 male
我的意思是通过浏览excel文件将excel工作簿中的数据加载到datagridview中。请问如何使用vb进行操作。净?
我可以使用以下代码浏览excel文件:
Private Sub BtnImport_Click(发件人为对象, 昏暗的对话框为新的OpenFileDialog() dialog.Filter =“Excel文件| *
dialog.InitialDirectory =“C:\” dialog.Title =“请选择 '你的excel文件。“
如果dialog.ShowDialog()= DialogResult.OK那么
Dim dt As DataTable dt = ImportExceltoDatatable(dialog.FileName) DataGridView1.DataSource = dt DataGridView1.Visible = True MsgBox(“done!”,MsgBoxStyle.Information)
结束如果 结束子
公共共享功能ImportExceltoDatatable(filepath As String)作为DataTable 尝试 Dim dt As New DataTable Dim ds As New DataSet()
Dim constring As String =“Provider = Microsoft.ACE.OLEDB.12.0; Data Source =”& filepath&
“;扩展属性=”“Excel 12.0; HDR = YES;”“” Dim con As New OleDbConnection(constring&“”)con.Open()
Dim myTableName = con.GetSchema(“Tables”)。行(0)(“TABLE_NAME”)
Dim sqlquery As String = String.Format(“select sex,[1-4] = count(AGE介于1和4然后1结束时的情况),[5-9] = count(
时的情况)AGE在5和9之间然后1结束),[10-14] =计数(AGE在10和14之间然后1结束的情况)
,[15-19] =计数(AGE在15和19之间然后1结束时的情况) ,[20-24] =计数(AGE时的情况
在20和24之间然后1结束)
从[“+ Cbosheet.SelectedValue +”GROUP BY SEX“,myTableName”]“
Dim da As New OleDbDataAdapter(sqlquery,con)
da.Fill(DS) dt = ds.Tables(0) 返回dt Catch ex As Exception MsgBox(Err.Description,
MsgBoxStyle.Critical) 结束尝试 结束功能
这会产生错误,请某人帮忙
答案 0 :(得分:0)
使用条件聚合
select
Sex, [10-19] = count(case when AGE between 10 and 19 then 1 end)
, [20-29] = count(case when AGE between 20 and 29 then 1 end)
--list other needed ranges
from
Table1
group by Sex