Sql Microsoft Access:基于分组变量(表中的字段)从一行中的多行返回结果

Sql Microsoft Access:基于分组变量(表中的字段)从一行中的多行返回结果,sql,ms-access,Sql,Ms Access,我正在研究鱼的生长速度,所以每次测量一条鱼时,我都需要计算重量和日期 现在,每个捕获记录都在单独的一行上。我基本上想拉pitcode,species,tagdate1,length1,weight1,tagdate2,length2,tagdate3,等等。。从该表中,按pitcode分组并按tagdate排序。我正在使用Microsoft Access。提前感谢您的建议 pitcode tagdate length weight species 3D9.1C

我正在研究鱼的生长速度,所以每次测量一条鱼时,我都需要计算重量和日期

现在,每个捕获记录都在单独的一行上。我基本上想拉
pitcode
species
tagdate1
length1
weight1
tagdate2
length2
tagdate3
,等等。。从该表中,按
pitcode
分组并按
tagdate
排序。我正在使用Microsoft Access。提前感谢您的建议

pitcode         tagdate       length  weight    species
3D9.1C2D9C7FCE  7/26/2011   213 118 3
3D9.1C2D9F3AB2  7/26/2011   148 38  3
3D9.1C2D9F1627  7/26/2011   215 116 3
3D9.1C2D60CDC6  7/26/2011   165 58  3
3D9.1C2D9F0797  7/26/2011   244 204 3
3D9.1C2D9BA47F  7/26/2011   143 47  3
3D9.1C2D9FD674  7/27/2011   226 183 3
3D9.1C2DA1C597  7/27/2011   123 27.2    3
3D9.1C2D9FE09F  7/27/2011   241 182.3   3
3D9.1C2D9FE4D8  7/27/2011   286 301 3
我在另一篇文章中发现了这个“自连接”,它很有效:

SELECT
  a.pitcode, 
  MIN(a.tagdate) AS td1, MIN(b.tagdate) AS td2, 
  MIN(a.weight) AS wt1, MIN(b.weight) AS wt2
FROM
  tagd a
  LEFT JOIN tagd b
  ON a.pitcode = b.pitcode AND b.tagdate > a.tagdate and b.weight>a.weight
GROUP BY
  a.pitcode;

可能的重复只是同一个问题的一个例子,至少还有三个。我想我想知道是否完全可以用sql。我不熟悉VB,我认为它正在使用。可能与SAS中的lag函数类似?不,不可能使用SQL将MS Access中的记录分组到一行。好的。非常感谢。那我得试试别的。我很感激你的回答。亚卡马菲什,你应该把你的答案写在下面,回答你自己的问题,这样人们就知道问题已经解决了。