Access 如何将多行合并成一行

时间:2022-03-20 10:31:32
Access 如何将多行合并成一行
例如:select c1 from table1

出来的结果是:
aaaa
bbbb
cccc
现在怎么实现出现来的是:aaaabbbbcccc

是一行不而不是3行

12 个解决方案

#1


详细一点,有无其它字段

#2


加入ID,类型自增
SELECT a.dd & b.dd & c.dd  from (ttd a left join ttd b on a.id=b.id-1) left join ttd c on b.id=c.id-1
where c.id is not null

#3


没有其它字段,用VBA循环记录集,生成结果

#4


有Guid类型的主键

#5


可以,将ID修改为你的主键名试试,没有看到你的记录,用自增字段好一点。

#6




ACCESS自身的SQL没什么办法。

不过如果仅在ACCESS中应用,则可以自己写个自定义函数。上次我贴过了。你自己找一下吧。.
    [align=center] = = = =     = = = =
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
 

#7


你的记录只有3行,上述代码没有问题,多一点记录可以用VBA方法来处理

#8


up

#9


up

#10


up

#11




Public Function concateColumn(sTable As String, sCol As String, iID As Long)
    Dim rs As New ADODB.Recordset
    Dim sSQL As String
    Dim sResult As String
    sResult = ""
    
    sSQL = "select " & sCol & " from " & sTable & " where id=" & iID
    rs.Open sSQL, CurrentProject.Connection
    Do While Not rs.EOF
        sResult = sResult & rs.Fields(0).Value & ";"
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    
    concateColumn = sResult
    
End Function



用法
select id,concateColumn('table1','c1',id) from yourTable.
    [align=center] = = = =     = = = =
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
 

#12


我的问题是我的行比较多,列也比较多想合并怎么办?而且我的是Access数据库,不是仅仅在access中调用,而是在C#中调用,急死我了拜托,谁能帮我解决50分全部给您,如果我有100分就给您100分数据源如下格式,字段F_ID; F_value; F_TC F_TN;

F_ID F_value F_TC F_TN
1    aa       24    1
1    bb       24    2
2    aaa      24    3
2    bbb      24    4
2    ccc      25    5
3    fff      25    6
3    ggg      25    7
3    kkk
要求得到的结果格式
F_ID DataMan
1     aa,bb
2     aaa,bbb,ccc
3     fff,ggg,kkk
要求使用Access数据库,方法可以在C#中调用

#1


详细一点,有无其它字段

#2


加入ID,类型自增
SELECT a.dd & b.dd & c.dd  from (ttd a left join ttd b on a.id=b.id-1) left join ttd c on b.id=c.id-1
where c.id is not null

#3


没有其它字段,用VBA循环记录集,生成结果

#4


有Guid类型的主键

#5


可以,将ID修改为你的主键名试试,没有看到你的记录,用自增字段好一点。

#6




ACCESS自身的SQL没什么办法。

不过如果仅在ACCESS中应用,则可以自己写个自定义函数。上次我贴过了。你自己找一下吧。.
    [align=center] = = = =     = = = =
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
 

#7


你的记录只有3行,上述代码没有问题,多一点记录可以用VBA方法来处理

#8


up

#9


up

#10


up

#11




Public Function concateColumn(sTable As String, sCol As String, iID As Long)
    Dim rs As New ADODB.Recordset
    Dim sSQL As String
    Dim sResult As String
    sResult = ""
    
    sSQL = "select " & sCol & " from " & sTable & " where id=" & iID
    rs.Open sSQL, CurrentProject.Connection
    Do While Not rs.EOF
        sResult = sResult & rs.Fields(0).Value & ";"
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    
    concateColumn = sResult
    
End Function



用法
select id,concateColumn('table1','c1',id) from yourTable.
    [align=center] = = = =     = = = =
[/align]
.
贴子分数<20:对自已的问题不予重视。
贴子大量未结:对别人的回答不予尊重。
.
 

#12


我的问题是我的行比较多,列也比较多想合并怎么办?而且我的是Access数据库,不是仅仅在access中调用,而是在C#中调用,急死我了拜托,谁能帮我解决50分全部给您,如果我有100分就给您100分数据源如下格式,字段F_ID; F_value; F_TC F_TN;

F_ID F_value F_TC F_TN
1    aa       24    1
1    bb       24    2
2    aaa      24    3
2    bbb      24    4
2    ccc      25    5
3    fff      25    6
3    ggg      25    7
3    kkk
要求得到的结果格式
F_ID DataMan
1     aa,bb
2     aaa,bbb,ccc
3     fff,ggg,kkk
要求使用Access数据库,方法可以在C#中调用