我怎么显示数字范围 - 使用BETWEEN-Count和别名

时间:2018-02-28 22:38:31

标签: sql-server-2008

如何使用BETWEENCOUNTALIAS显示同一列中数字范围的数字范围。 比如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)  结束尝试 结束功能

这会产生错误,请某人帮忙

1 个答案:

答案 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