我试图将最后一条记录带入一个小组。 这是我尝试使用的查询,但它带来了该组中的第一条记录。
SELECT
"hba"."ID",
"hba"."session_number",
"hba"."u_c",
"hba"."u-v",
"hba"."date"
FROM "hba"
GROUP BY "hba"."ID","hba"."session_number"
非常感谢任何帮助。
答案 0 :(得分:0)
我猜这里。看起来您的ID
字段是自动增量的。看起来您希望查询只为session_number
的每个不同值显示一行,并且该行应该是最近插入的一行(放置它的“最后一行”)。
让我们首先检索每个组的最新行的ID。
SELECT MAX(ID) AS ID, session_number
FROM hba
GROUP BY session_number
然后,让我们将其用作子查询并将其加入表中。
SELECT a.ID, a.session_number, u_c, u_v, date
FROM hba AS a
JOIN (
SELECT MAX(ID) AS ID, session_number
FROM hba
GROUP BY session_number
) AS b ON a.ID = b.ID
ORDER BY a.session_number
看看这是怎么回事?首先,您定义“最后一行”的含义,并构建子查询以实现该定义。然后使用该子查询从主表中获取所需的数据。然后以可用的方式订购最终结果集。
出于某种原因,您没有在问题中披露您在Crystal Reports中工作。您可能会发现使用MySQL客户端从数据库中创建包含所需信息的视图会很有帮助,然后使用Crystal从该视图中呈现结果集。
答案 1 :(得分:0)
SELECT "hba"."ID", "hba"."session_number", "hba"."u_c", "hba"."u-v", "hba"."date"
FROM "hba"
GROUP BY "hba"."ID","hba"."session_number" ORDER BY "hba"."ID" desc,"hba"."session_number" desc
就是你需要做的一切。