【发布时间】:2018-07-26 02:06:00
【问题描述】:
我有两个单独工作的 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
);
不返回任何内容(它应该返回与上述语句相同的行),即使外部和内部选择语句各自工作。这里有什么问题?
谢谢!
【问题讨论】:
-
如果您更改查询返回什么:
select * from (SELECT a1.PersonID, a1.Vorname, a1.Nachname, MAX(a1.Fachanzahl) Fachanzahl FROM C17_AbfrageBView a1 GROUP BY a1.PersonID, a1.Vorname, a1.Nachname) t where t.Fachanzahl = ( SELECT MAX(a2.Fachanzahl) FROM C17_AbfrageBView a2 ); -
@l3rutt 行得通!谢谢!
-
这段代码在同一个实例中执行?另外,如果您将最大值存储到变量中并使用该变量仍然返回错误的输出?
-
@Petra1999 但是我们没有找到您的代码不起作用的原因。
-
@Petra1999 这应该可以工作:dbfiddle.uk/…
Fachanzahl数据类型是什么?
标签: sql oracle select subquery sql-subselect