有张发货表,上面有录入时间,工程名称,发货量,现在有了分组统计,也就是加入了“GROUP BY 工程名称”后,不知如何编写了,例如获取总行数,就怎么改也改不成
Dim cmd As New SQLCommand
cmd.C '记得设置数据源名称
cmd.C ommandText = "S elect 工程名称,sum(发货量) From {销售出库} where " & flt & " GROUP BY 工程名称"
cmd.C ommandText = "S elect count(*) from(" & cmd.CommandText & ")"
Dim Count As Integer = cmd.ExecuteScalar() '获取总的行数
下面是一段完整的代码,没有分组统计时使用的,请老师帮我改下,改成按工程名称分组统计发货量并且要分页显示,万分感谢!
。。。上面全是flt的合成
'获取要显示的页码
Dim page As Integer = 0 '默认page为0,显示第一页
Dim pageRows As Integer = 10 '每页10行
If e.GetValues.ContainsKey("page") Then '如果地址中有page参数
Integer.TryParse(e.GetValues("page"), page) '提取page参数
End If
Dim StartRow As Integer = page * pageRows + 1 '此页第一行
Dim EndRow As Integer = (page + 1) * pageRows '此页最后一行
'提取此页数据
Dim cmd As New SQLCommand
cmd.C '记得设置数据源名称
cmd.C ommandText = "S elect Count(*) From {销售出库}"
If flt > "" Then
cmd.C ommandText = cmd.C ommandText & " where " & flt
End If
Dim Count As Integer = cmd.ExecuteScalar() '获取总的行数
cmd.C ommandText = "S elect * From (S elect Row_Number() Over(Order by 录入时间) As 序号,工程名称,发货量 From {销售出库} "
If flt > "" Then
cmd.C ommandText = cmd.C ommandText & " where " & flt
End If
cmd.C ommandText = cmd.C ommandText & ") As a "
cmd.C ommandText = cmd.C ommandText & " Where 序号>= " & StartRow & " And 序号 <= " & EndRow
Dim dt As DataTable = cmd.ExecuteReader '获取该页数据
'根据此页数据生成网页
With wb.AddTable("","Table1")
.CreateFromDataTable(dt)
End With
[此贴子已经被作者于2020/3/22 13:02:33编辑过]