gpt4 book ai didi

sql - 两个 SELECT-Statement 单独工作但不一起工作

转载 作者:行者123 更新时间:2023-12-01 04:43:24 25 4
gpt4 key购买 nike

我有两个 select 语句可以单独使用,但不能一起使用。

这个:

SELECT MAX(a2.Fachanzahl)
FROM C17_AbfrageBView a2;

工作并返回一行,一列,值为 2

这个:
SELECT a1.PersonID, a1.Vorname, a1.Nachname, MAX(a1.Fachanzahl) Fachanzahl
FROM C17_AbfrageBView a1
GROUP BY a1.PersonID, a1.Vorname, a1.Nachname
HAVING MAX(a1.Fachanzahl) = 2;

工作并返回正确的行。

然而,这:
SELECT a1.PersonID, a1.Vorname, a1.Nachname, MAX(a1.Fachanzahl) Fachanzahl
FROM C17_AbfrageBView a1
GROUP BY a1.PersonID, a1.Vorname, a1.Nachname
HAVING MAX(a1.Fachanzahl) = (
SELECT MAX(a2.Fachanzahl)
FROM C17_AbfrageBView a2
);

不返回任何内容(它应该返回与上述语句相同的行),即使外部和内部选择语句独立工作。这里有什么问题?

谢谢!

最佳答案

我想不出会发生这种情况的机制。据我所知,MAX()不会改变列的类型,排除诸如浮点舍入错误或排序规则不兼容之类的问题。

我可以说如果使用 WHERE 编写查询会更有效而不是 HAVING :

SELECT DISTINCT a1.PersonID, a1.Vorname, a1.Nachname, a1.Fachanzahl
FROM C17_AbfrageBView a1
WHERE a1.Fachanzahl = (SELECT MAX(a2.Fachanzahl)
FROM C17_AbfrageBView a2
);

如果 MAX()正在引入一些对值进行纳米更改的问题,那么这可能会解决问题。

因为您只关心最大值(至少在问题中的查询中),所以您可以先进行过滤。这使得查询效率更高。 SELECT DISTINCT的区别和 GROUP BY应该介于无和可忽略之间。前者更容易打字。

关于sql - 两个 SELECT-Statement 单独工作但不一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48805167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com