ConcatRelated 的问题及其实现

问题描述 投票:0回答:2

有一个包含数据的表格:

Table name it [was on treatment]
Number_medical_history - short text
ID - counter
datefrom - date
dateto - date
hospital name - short text

查询 1 姓名 - [正在接受治疗查询] 查询 2 名称 - [正在联合治疗查询]

有第一个查询:

SELECT [was on treatment].[Number_medical_history] AS "Number medical history", [was on treatment].datefrom AS datefrom, [was on treatment].dateto AS dateto, [was on treatment].[hospital name] AS "hospital name", "from " & [datefrom] & " " & "to" & " " & [dateto] & " " & "in" & " " & [hospital name] & ";" AS United
FROM [was on treatment]
WHERE ((([was on treatment query].[Number_medical_history])=[Forms]![Forms_1]![Number_medical_history]))

接下来是第二个sql查询:

SELECT [was on treatment query], ConcatRelated("[was on treatment query].United","[was on treatment query]","Id = " & [was on treatment query].[Number_medical_history],"") AS United INTO healing_from_to IN 'C:\AAC\BD\Onlytable.accdb'
FROM [was on treatment query]
WHERE ((([was on treatment query].[Number_medical_history])=[Forms]![Forms_1]![Number_medical_history]))
GROUP BY [was on treatment query].[Number_medical_history];

结果应该是行合并为一,但是我的 SQL 查询有问题,你能帮我吗? 谢谢你。

我尝试首先使用 Number_Medical_History 字段选择必要的数据,将数据合并到一行中。 结果合并数据时,只显示了Number_Medical_History,合并结果的第二个字段没有显示。

database ms-access
2个回答
0
投票

事情可能会是这样的:

Select 
    Id,
    [Number_medical_history], 
    datefrom, 
    dateto, 
    [hospital name], 
    "from " & [datefrom] & " to " & [dateto] & " in " & [hospital name] & ";" AS United
From
    [was on treatment]
Where
    [Number_medical_history] = [Forms]![Forms_1]![Number_medical_history]

和:

SELECT 
    RowNumber(CStr([Id]), [Number_medical_history]) AS RowID, *
INTO 
    healing_from_to IN 'C:\AAC\BD\Onlytable.accdb'
FROM 
    [was on treatment query]
WHERE 
    [Number_medical_history] = [Forms]![Forms_1]![Number_medical_history]
    AND
    (RowNumber("","",True)=0);

使用我在此处找到的

RowNumber
函数以及完整文档:

VBA.RowNumbers

以及之前发布的这里


0
投票

一条SQL语句应该能够完成。

SELECT [Number_medical_history], 
    First(ConcatRelated("' from ' & [datefrom] & ' to ' & [dateto] & ' in ' & [hospital name]", "[was on treatment]", "Number_medical_history='" & Number_medical_history & "'","",";")) AS United
INTO healing_from_to IN 'C:\AAC\BD\Onlytable.accdb'
FROM [was on treatment]
WHERE [Number_medical_history]=[Forms]![Forms_1]![Number_medical_history]
GROUP BY Number_medical_history;
© www.soinside.com 2019 - 2024. All rights reserved.