一个SQL语句求和的问题

garrymark 2005-06-23 05:07:24
Dim strSQL = "select carpage,carno,sum(carbriage),sum(carstop),sum(carhourse),sum(carother),sum(cartotal) from cartable group by carno where carpage='" &textbox1.text.trim&"' "
Dim dsTransInfo As New DataSet
Dim myDataAdapter As New SqlDataAdapter
dsTransInfo.Clear()
myDataAdapter = New SqlDataAdapter(strSQL, cnsqlserver)
myDataAdapter.Fill(dsTransInfo)

With DataGrid1
.TableStyles.Clear()
.DataSource = dsTransInfo
.DataMember = "table"
End With

Dim ts As New DataGridTableStyle
Dim ac As New DataGridTextBoxColumn
Dim HeaderValues(7) As String
Dim WidthValues(7) As Integer
Dim i As Integer

HeaderValues(0) = "车牌号"
HeaderValues(1) = "过桥费"
HeaderValues(2) = "停车费"
HeaderValues(3) = "进仓费"
HeaderValues(4) = "其他费用"
HeaderValues(5) = "总计"


WidthValues(0) = 60
WidthValues(1) = 60
WidthValues(2) = 90
WidthValues(3) = 90
WidthValues(4) = 90
WidthValues(5) = 90


ts.MappingName = dsTransInfo.Tables(0).TableName
For i = 0 To 5
ac = New DataGridTextBoxColumn
ac.HeaderText = HeaderValues(i) '列名
ac.MappingName = dsTransInfo.Tables("table").Columns(i).ColumnName
ac.TextBox.AutoSize = True 'datagrid内的文本框宽度自适应调整
ac.NullText = String.Empty
ts.AlternatingBackColor = Color.LightGray '设定交替行的背景色
ts.PreferredColumnWidth = WidthValues(i) '列宽
ts.GridColumnStyles.Add(ac)
Next i
DataGrid1.TableStyles.Add(ts)
运行后提示错系统错误,经过调试后发现可能是SQL语句不对,将SQL语句改成
Dim strSQL = "select carno,sum(carbriage),sum(carstop),sum(carhourse),sum(carother),sum(cartotal) from cartable group by carno "就不会出错了。但我要根据按页码条件来查询,问题出在哪里啊?
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
garrymark 2005-06-23
  • 打赏
  • 举报
回复
问题解决,谢谢大家,语句我最后是这么写的
select carno,carpage,sum(carbriage),sum(carstop),sum(carhourse),sum(carother),sum(cartotal) from cartable group by carno,carpage where carpage=" & TextBox1.Text.Trim & " "
chamys 2005-06-23
  • 打赏
  • 举报
回复
select carpage,carno,sum(carbriage),sum(carstop),sum(carhourse),sum(carother),sum(cartotal)
from cartable
group by carpage,carno
where carpage='" &textbox1.text.trim&"'


hamadou 2005-06-23
  • 打赏
  • 举报
回复
首先,group by语句的位置应该在where 后,
还有就是你的carpage字段要包含在order by 字句中或者要使用聚合函数。
singlepine 2005-06-23
  • 打赏
  • 举报
回复

USE pubs
SELECT pub_id, total = SUM(ytd_sales)
FROM titles
GROUP BY pub_id
HAVING SUM(ytd_sales) > 40000
singlepine 2005-06-23
  • 打赏
  • 举报
回复
Dim strSQL = "select carpage,carno,sum(carbriage),sum(carstop),sum(carhourse),sum(carother),sum(cartotal)
from cartable group by carno having carpage='" & textbox1.text.trim&"'"

//where改为having
huangjianyou 2005-06-23
  • 打赏
  • 举报
回复
将 where 条件放在group by 之前。

"select carno,sum(carbriage),sum(carstop),sum(carhourse),sum(carother),sum(cartotal) from cartable where carpage='" & textbox1.text.trim & "' group by carno "

^_^
route2 2005-06-23
  • 打赏
  • 举报
回复
把where移到group前就可以了

16,552

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧