在单个字段中组合多个列

时间:2014-07-09 19:38:00

标签: ms-access

![WELD TRACKING DATABASE] [1]

嗨,大家好!

我希望你能解决我的问题。 我有6列(Col1,Col2,Col3,Col4,Col5,Col6),每行都有一个唯一的ID。 现在,我尝试在一个单独的字段中合并/组合6列,但我坚持+和&操作。我想查询结果如下。

Row1(Col1 = 10 Col2 = 10,Col3 = 10,Col4 = 10,Col5 = 10,Col6 = 10;查询= 10)
第2行(Col1 = 10 Col2 = 10,Col3 = 20,Col4 = 20,Col5 = 30,Col6 = 30;查询= 10/20/30)
Row3(Col1 = 10 Col2 = 20,Col3 = 30,Col4 = 40,Col5 = 50,Col6 = 60;查询= 10/20/30/40/50/60)

提前谢谢你们!

1 个答案:

答案 0 :(得分:0)

首先我想说我认为您应该重新审视存储数据的方式。有可能没有正确设置"正确"如果您觉得需要按列分组。通常情况下,存储数据的方式存在问题。我可能会弄错,但是给定的信息就是这样。

要解决您的实际问题,我会使用自定义功能。我无法想到一种只使用SQL

进行查询和分组的方法

将该功能放入模块并在您的查询中调用(例如CombinedColumns: GroupByColumns([a],[b],[c],[d],[e],[f])),其中a,b,c,d,e,f是字段名称

Function GroupByColumns(ParamArray flds())
    Dim dict As Dictionary
    Dim key
    Dim i As Long

    Set dict = New Dictionary
    For i = LBound(flds) To UBound(flds)
        If dict.Exists(flds(i)) = False Then
            dict.Add flds(i), flds(i)
        End If
    Next
    For Each key In dict.Keys
        If GroupByColumns = "" Then
            GroupByColumns = key
        Else
            GroupByColumns = GroupByColumns & "/" & key
        End If
    Next
End Function