![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)
提前谢谢你们!
答案 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