sql的group by 求助

查看 139|回复 9
作者:p4607596   
表:septs
        字段:sex
        字段:nane   (主键)
       等等字段
要求答案VB6.0可运行
当前我的代码
sql = "select sex,name,count(*) from [septs] where father='王上'group by sex,name "
        rst.Open sql, cnn, 1, 4
        Set VSFlexGrid1.DataSource = rst
        rst.Close
当前得到结果是“
男         王一        1
男         王二         1
男         王四         1
女         王心           1
女         王娜          1
我想要的结果是”
男      3       王1,王二,王三
女      2       王心,王娜

字段, 王二

jaxfeng   

        select sex,
        COUNT( sex ) ,
        GROUP_CONCAT(`NAME`) as names from [septs] where father='王上'group by sex;
astree   

select sex,name,count(*) from [septs] where father='王上'group by sex,name  =>  select sex,count(*),
GroupConcat
('name','septs','sex=' & "'" & sex & "'") from [septs] where father='王上' group by sex。
其中GroupConcat是一个自定义函数,定义如下
[SQL] 纯文本查看 复制代码Public Function GroupConcat(sColumn As String, sTable As String, Optional sCriteria As String, Optional sDelimiter As String = ",")
    On Error GoTo ErrHandler
    Dim rs As New ADODB.Recordset
    Dim sSQL As String
    Dim sResult As String
    sResult = ""
    sSQL = "select " & sColumn & " from " & sTable
    If sCriteria  "" Then
        sSQL = sSQL & " where " & sCriteria
    End If
    rs.Open sSQL, CurrentProject.Connection, adOpenForwardOnly, adLockReadOnly
    Do While Not rs.EOF
        If sResult  "" Then
            sResult = sResult & sDelimiter
        End If
        sResult = sResult & rs.Fields(0).Value
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    GroupConcat = sResult
    Exit Function
ErrHandler:
    If rs.State  adStateClosed Then
        rs.Close
    End If
    Set rs = Nothing
    GroupConcat = Err.Number & " : " & Err.Description
End Function
参考:https://blog.csdn.net/apollo_ts/article/details/6280474
zkl512008   

终于找个解决办法了,谢谢!
p4607596
OP
  


astree 发表于 2023-3-13 14:00
select sex,name,count(*) from [septs] where father='王上'group by sex,name  =>  select sex,count(*), ...

file:///C:/Users/%E9%9F%A6%E6%99%93%E5%A7%90/Desktop/QQ%E6%88%AA%E5%9B%BE20230313144912.png这地方怎样写
astree   


p4607596 发表于 2023-3-13 14:51
这地方怎样写

图片上传到图床或者吾爱上。。你这贴个本地图片地址加载不出来的
p4607596
OP
  


astree 发表于 2023-3-13 15:42
图片上传到图床或者吾爱上。。你这贴个本地图片地址加载不出来的

astree   


p4607596 发表于 2023-3-13 19:02

里面的双引号都用 \转义一下 变成\"
p4607596
OP
  


astree 发表于 2023-3-13 20:10
里面的双引号都用 \转义一下 变成\"

"'" & sex & "'" 我不明白这句什么意思,改成'" & sex & "'这样它会变在一个变量,我看不明白。结果是都出错,不能运行。
zpy2   


p4607596 发表于 2023-3-13 20:37
"'" & sex & "'" 我不明白这句什么意思,改成'" & sex & "'这样它会变在一个变量,我看不明白。 ...

这个自定义函数之支持access vba ,vb6不支持的
换sqlite支持
https://club.excelhome.net/forum ... p;extra=&mobile
您需要登录后才可以回帖 登录 | 立即注册

返回顶部