請教一下大家,我想實作利用資料庫的資料,統計一下各個年齡段的購車人數,其計算結果在datagrid上顯示出來。
這個的陳述句應該怎么寫呢
uj5u.com熱心網友回復:
group by 分組uj5u.com熱心網友回復:
這是什么意思?uj5u.com熱心網友回復:

Private Sub Command1_Click()
Dim NLD(1 To 4) As String, RS(1 To 4) As Integer '定義了二個陣列變數
NLD(1) = "20到29歲"
NLD(2) = "30到39歲"
NLD(3) = "40到49歲"
NLD(4) = "50到59歲"
Adodc1.RecordSource = "Select ID,年齡 From 購車記錄"
Adodc1.Refresh
Do While Not Adodc1.Recordset.EOF
If Adodc1.Recordset.Fields("年齡") >= 20 And Adodc1.Recordset.Fields("年齡") < 30 Then
RS(1) = RS(1) + 1
ElseIf Adodc1.Recordset.Fields("年齡") >= 30 And Adodc1.Recordset.Fields("年齡") < 40 Then
RS(2) = RS(2) + 1
ElseIf Adodc1.Recordset.Fields("年齡") >= 40 And Adodc1.Recordset.Fields("年齡") < 50 Then
RS(3) = RS(3) + 1
ElseIf Adodc1.Recordset.Fields("年齡") >= 50 And Adodc1.Recordset.Fields("年齡") < 60 Then
RS(4) = RS(4) + 1
End If
Adodc1.Recordset.MoveNext
Loop
MSHFlexGrid1.Clear
With MSHFlexGrid1
.Cols = 3
.Rows = 5
.TextMatrix(0, 1) = "年齡段"
.TextMatrix(0, 2) = "人數"
.ColWidth(0) = 400
.ColWidth(1) = 1000
.ColWidth(2) = 1000
For I = 1 To 4
.TextMatrix(I, 1) = NLD(I)
.TextMatrix(I, 2) = RS(I)
Next I
End With
End Sub
資料庫連接陳述句略,購車記錄的資料表是隨意創建的,你可以根據你的資料表就可以了。
uj5u.com熱心網友回復:
不用 3 樓那么麻煩,用 Partition 函式就可以。假定你已經知道如何用 Connection 物件連接資料庫,且使用了 cn 物件變數:
rs.Open "SELECT DISTINCTROW Partition([年齡],0, 60, 10) AS [年齡段], Count(購車記錄.ID) As [人數] From 購車記錄 GROUP BY Partition([年齡],0,60,10)", cn
Set DataGrid1.DataSource = rs
uj5u.com熱心網友回復:
group by直接解決,分類匯總么.uj5u.com熱心網友回復:
姓名 年齡==============
張三 23
李四 51
王五 32
。
。
select convert(varchar(5),段)+'0-'+convert(varchar(5),段)+'9' as 年齡段,人數 from
(
select 年齡/10 as 年齡段,count(distinct 姓名) as 人數 from 購車表 group by 年齡/10
)
試試看
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/60964.html
上一篇:ANSYS workbench VB宏運行錯誤,求救
下一篇:程式界面
