MS Access:填写缺失值并添加数字

时间:2018-04-20 09:17:00

标签: ms-access ms-access-2010

我不确定一个合适的标题是什么,我希望这有效。

我在将行转换为具有特定表的列时遇到问题,并且在线找到了可能的解决方案。但是,我觉得我需要编辑此表以使我能够将行实际转换为列。

表格看起来有点像这样:

ID1 patientID patientname study_date echo_var

 1   1234      Bob         01-01-2014 15
 2   1234                  01-01-2000 13
 3   1234      Bob         08-08-2012 14
 4   1234      Bob         13-02-2005 13
 5   6625      Louie       12-11-2010 25
 6   6625                  08-10-1998 20
 7   6625      Louie       19-04-2006 21

这是从电子病人系统自动收集的信息,通常每行包含更多变量,但我现在只对一个(echo-var)感兴趣。所有行代表特定的患者就诊。由于电子系统的变化,我使用的工具无法从旧记录中正确提取所有数据,这就是为什么某些名称没有正确填写的原因。看到他们的患者ID对于每个患者都是独一无二的,我可以手动填写姓名,但是大约有6000条记录,所以我希望这样做会更优雅。

但这并不是很麻烦,主要的是将行转换为列(见下文)。所以我在网上找到了解决问题的方法,但我觉得我受到了阻碍,因为每位患者的单独数据点并没有为每位患者编号,如下所示。我希望为每位患者编号为每个单独的数据点编号,因此第一次访问按时间顺序分别为每位患者编号为1,第二次访问为2,等等。

 ID1 patientID patientname study_date echo_var echo_number

 1   1234      Bob         01-01-2014 15        4
 2   1234      Bob         01-01-2000 13        1
 3   1234      Bob         08-08-2012 14        3
 4   1234      Bob         13-02-2005 13        2
 5   6625      Louie       12-11-2010 25        3
 6   6625      Louie       08-10-1998 20        1
 7   6625      Louie       19-04-2006 21        2

如果我有这个,我想我知道如何将行转换为列,这是我最终想要的,如下所示。

patientID echo_number1 study_date1 echo_var1 echo_number2 study_date2 echo_var2
1234      1            01-01-2000  13        2            13-02-2005  13
6625      1            08-10-1998  20        2            19-04-2006  21

日期没有行。 3及其各自的测量等。 我猜echo_number(x)变量并不重要,但日期和相应的测量值都是。

有谁知道正确的方法吗?正如我所提到的,我已经尝试过寻找这些特殊问题,但我找不到解决方案。如果有什么不清楚请告诉我。如果有人知道如何从第一个表到最后一个表(没有中间的步骤),那也可以。

非常感谢提前

使用类似于上面第二个的表格,我尝试了以下查询:

SELECT 
    [patientID],
    "echo_number" & [echo_number] & "_" & "echo_var" AS [ValueID],
    [echo_var] AS [ValueValue]
FROM [TABLENAME]
UNION ALL SELECT 
    [patientID],
    "echo_number" & [echo_number] & "_" & "study_date" AS [ValueID],
    [study_date] AS [ValueValue]
FROM [TABLENAME];

其次是:

TRANSFORM Sum(NEWQUERY.ValueValue) AS SumOfValueValue
SELECT NEWQUERY.patientID
FROM NEWQUERY
GROUP BY NEWQUERY.patientID
PIVOT NEWQUERY.ValueID

0 个答案:

没有答案