【问题标题】:MS Access: show only the max and min row using SQLMS Access:使用 SQL 仅显示最大和最小行
【发布时间】:2012-10-31 12:56:38
【问题描述】:

我又遇到了 sql 的小问题 :) 在此示例中,我必须在一行中显示最大 ekpreis,在第二行中显示最小 ekpreis。但还有所有其他数据。我试过 select max(ekpreis) 但没用。

我试过了:

选择 ARTBEZ,最大值(ekpreis) 来自艺术家 按 artbez 分组;

但这只是返回所有行,而不仅仅是最大行。

【问题讨论】:

  • 您现在使用什么查询?什么没用?您希望查询结果是什么样的?从最初的帖子看不太清楚。
  • 您说SELECT ARTBEZ, max(ekpreis) FROM artst Group by artbez 只返回所有行,但据我所知,这是因为artbez 中的每一行都有不同的值。另外,不能只说“最高价”,必须说出for的最高价,例如“所有行的最高价”、“每种纸张类型的最高价” .

标签: sql ms-access max min


【解决方案1】:

您必须尝试使用​​以下查询

SELECT * FROM artst 其中 EKPREIS = (SELECT MAX(EKPREIS) FROM artst) 或 EKPREIS = (SELECT MIN(EKPREIS) FROM artst)

它只检索 EKPREIS 最大值和 EKPREIS 最小值的两行

【讨论】:

  • 这个答案非常完美。非常感谢:)
【解决方案2】:

您的问题含糊不清,您使用的是 GROUP BY 吗?

如果是这样,那么你就做这样的事情

SELECT MAX(EKPREIS) as MaxVal, MIN(EKPREIS) as MinVal

【讨论】:

  • 我尝试过这样的事情: SELECT ARTBEZ, max(ekpreis) FROM artst Group by artbez;但这只是向我展示每一行。不仅仅是最大行。
  • 你走在正确的轨道上。但是,您应该首先按 ARTNR 分组。您想按其唯一 ID 对它们进行分组。
  • 嗯,如果我按 ARTNR 分组,我会得到相同的结果。显示每一行,而不仅仅是最大行。
  • 选择 artst.ARTNR, Max(artst.EKPREIS) AS MaxvonEKPREIS 从 artst GROUP BY artst.ARTNR;
  • 我想我误解了你的问题,我发布了一个新答案。
【解决方案3】:

选择 EKPREIS 最高的记录

SELECT TOP 1 * FROM artst ORDER BY EKPREIS DESC

选择EK最低的记录

SELECT TOP 1 * FROM artst ORDER BY EKPREIS ASC

要将它们放在一起,请使用 UNION select

【讨论】:

  • 你也是 NoPyGod。感谢你付出的努力! :)
猜你喜欢
  • 2020-08-10
  • 2023-03-16
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
相关资源
最近更新 更多