我知道这是sql的常见问题,我已经找到了很多关于如何执行此操作的解释,但是当我要从中获取max条目(用于“ dauer”)的表时,我只是无法确定该怎么做查询已创建的表。我正在使用SQLServer数据库。我真的希望你们能给我一个提示。
SELECT foo.vname, foo.nname, foo.sw_name, SUM(foo.dauer) AS dauer from
(SELECT benutzer.vname, benutzer.nname, verwendung.sw_name, verwendung.dauer
FROM benutzer
INNER JOIN verwendung
ON benutzer.login = verwendung.login AND benutzer.pw = verwendung.pw
GROUP BY benutzer.login, benutzer.pw, verwendung.sw_name, verwendung.dauer
ORDER BY benutzer.vname ASC, benutzer.nname ASC, verwendung.sw_name ASC)AS foo
GROUP BY foo.vname, foo.nname, foo.sw_name
编辑:澄清我想知道的我想获取表中在“ dauer”列中具有最大值的条目。例如:因为Ada应该是Ada-Lovelace-Presmaker-910
我正在尝试了解您的需求,如果我是对的,这会做到的:如你所说:
我想从一个已经存在的表中获取最大条目(“ dauer”)通过查询创建
select foo2.vname
, foo2.nname
, foo2.sw_name
, foo2.dauer
from (
SELECT foo.vname
, foo.nname
, foo.sw_name
, SUM(foo.dauer) AS dauer
from (SELECT benutzer.vname
, benutzer.nname
, verwendung.sw_name
, verwendung.dauer
FROM benutzer
INNER JOIN verwendung
ON benutzer.login = verwendung.login
AND benutzer.pw = verwendung.pw
GROUP BY benutzer.login
, benutzer.pw
, verwendung.sw_name
, verwendung.dauer
ORDER BY benutzer.vname ASC
, benutzer.nname ASC
, verwendung.sw_name ASC)AS foo
GROUP BY foo.vname
, foo.nname
, foo.sw_name) as foo2
where foo2.dauer = (select max(foo3.dauer)
from (SELECT foo.vname
, foo.nname
, foo.sw_name
, SUM(foo.dauer) AS dauer
from (SELECT benutzer.vname
, benutzer.nname
, verwendung.sw_name
, verwendung.dauer
FROM benutzer
INNER JOIN verwendung
ON benutzer.login = verwendung.login
AND benutzer.pw = verwendung.pw
GROUP BY benutzer.login
, benutzer.pw
, verwendung.sw_name
, verwendung.dauer
ORDER BY benutzer.vname ASC
, benutzer.nname ASC
, verwendung.sw_name ASC)AS foo
GROUP BY foo.vname
, foo.nname
, foo.sw_name) foo3
where foo3.vname = foo2.name
and foo3.nname = foo2.nname
and foo3.sw_name ) foo.sw_name)
并且取决于您的数据库是什么,查询可能会有所不同...