当然是跟你需要分组的字段了
www.applevb.com

解决方案 »

  1.   

    select * from baojiadetail group by 报价时间
    其中baojiadetail是表名,"报价时间"是字段 
      

  2.   

    select * from baojiadetail group by 报价时间
    其中baojiadetail是表名,"报价时间"是字段  你这句话没必要用group by ,group by是用在汇总,平均之类的时候用的。
    比如  select sum(金额)from baojiadetail group by 字段另外,我给你一份资料你看看GROUP BY...语句
        GROUP BY... 语句实现纪录分组功能,它通常需要和上面我们提到过的统计函数 SUM、COUNT 等联合使用,它的语法为: SELECT column1[, column2] 
     FROM table1[,table2] 
     WHERE conditions 
     GROUP BY column1[, column2]
     ORDER BY column1[, column2]范例四:计算学生成绩及总成绩
        我们依然使用上一章使用的数据库 c:\db4.mdb,在其中加入一个名字为 db2 的表,表的结构以及数据如下:
     
    字段名 学生 科目 成绩
     张严 语文 86.5
     李永 语文 93
     王为 语文 91
     张严 数学 96.5
     李永 数学 90
     王为 数学 87
     张严 英语 80.5
     李永 英语 94
     王为 英语 98    建立新工程,加入DAO定义库。在Form1中加入一个ListBox控件,然后在Form_load中加入以下代码:Private Sub Form_Load()
        Dim rsTemp As Recordset
        Dim dbTemp As Database
        Dim astr As String
        
        Set dbTemp = DBEngine(0).OpenDatabase("c:\db4.mdb", dbOpenSnapshot)
        astr = "SELECT SUM(db2.成绩)AS rTotal, FORMAT((AVG(db2.成绩)),'###.#') AS rAVG, " & _
                " (db2.学生) AS Student FROM db2 GROUP BY db2.学生"    Set rsTemp = dbTemp.OpenRecordset(astr)
        If rsTemp.RecordCount > 0 Then
            rsTemp.MoveFirst
            Do Until rsTemp.EOF
                List1.AddItem rsTemp![Student] & Chr(5) & rsTemp![rTotal] & _
                    "       " & rsTemp![rAVG]
                rsTemp.MoveNext
            Loop
        End If
    End Sub
        在上面的代码中,我们利用GROUP BY将纪录根据学生姓名分组,再建立了两个统计字段rTotal和rAvg并分别利用
    统计函数SUM和AVG分别统计各个分组的总成绩以及平均成绩。要注意的是,在SELECT语句中出现的字段,如果没有包含
    在统计函数内的话,都要包含在GROUP BY子句中。
        另外在上面的SQL查询中我们还使用了FORMAT子句,这是SQL中的转换和格式化语句中的一个,该语句的语法同VB中
    的Format语句是一样的,相似的语句还有FIX语句。需要注意的一点是,虽然在Microsoft JET Engine 中的SQL语法和
    ANSI决大部分是一样的,但是有一些还是保留了“微软特色”,特别是象这一类的转换和格式化语句,例如FORMAT就是
    ANSI中没有的。而象其它数据库,诸如oracle也有各自的SQL语法扩展。在使用不同数据库进行SQL查询时要注意这一点。
        在GROUP BY 语句中还可以连接使用HAVING子句。该语句同GROUP BY的关系就如同WHERE子句同SELECT的关系类似,
    WHERE子语句为SELECT所选择的列设置条件,而HAVING子语句是给由GROUP BY创建的组设置条件。例如如果将上面的范例
    中的astr改变为如下的字符串:astr = "SELECT SUM(db2.成绩)AS rTotal, FORMAT((AVG(db2.成绩)),'###.#') " & _
                "AS rAVG, (db2.学生) AS Student FROM db2 GROUP BY db2.学生" & _
                " HAVING (AVG(db2.成绩))>=90"则在List中就将只会列出平均成绩大于90分的学生的成绩和名字。范例五:获得分数高于总平均分数的学生及科目
        我们仍然使用上面建立的db2表。建立新工程,加入DAO定义库。在Form1中加入一个ListBox控件和一个Label控件
    然后在Form_load中加入以下代码:Private Sub Form_Load()
        Dim rsTemp As Recordset
        Dim dbTemp As Database
        Dim astr As String
        
        Set dbTemp = DBEngine(0).OpenDatabase("c:\db4.mdb", dbOpenSnapshot)
        
        astr = "SELECT FORMAT(AVG(db2.成绩),'###.#') AS tAVG FROM db2"
        Set rsTemp = dbTemp.OpenRecordset(astr)
        Label1.Caption = "总平均成绩:" & rsTemp![tAVG]
        rsTemp.Close
        Set rsTemp = Nothing
        
        astr = "SELECT db2.成绩, db2.学生,db2.科目 FROM db2 WHERE db2.成绩 > " & _
                "(SELECT AVG(db2.成绩) FROM db2) GROUP BY db2.学生,db2.成绩,db2.科目 " & _
                "ORDER BY db2.学生"
        Set rsTemp = dbTemp.OpenRecordset(astr)
        If rsTemp.RecordCount > 0 Then
            rsTemp.MoveFirst
            Do Until rsTemp.EOF
              List1.AddItem rsTemp![学生] & "    " & rsTemp![科目] & "    " & rsTemp![成绩]
              rsTemp.MoveNext
            Loop
        End If
    End Sub
        运行程序,在Lable1中列出总平均分数。在List1中列出了学生姓名、获得高于平均分数的科目以及科目成绩。
    在上面的查询中,我们使用了一个嵌套查询,首先在子查询中获得所有科目总的平均分数,然后在查询中查询成绩字段
    值大于平均分数的纪录。