2010-06-27 6 views
0

나는이있어 :ABAP : 최대 및 개수 선택을 결합하는 방법?

select ordernr 
from users 
having count(ordernr) = 
(select max(count(ordernr)) 
    from users where ordernr = ordernr 
    group by ordernr) 
group by ordernr 

모든 사용자로부터 가장 많이 사용되는 주문 번호 (ordernr)를 얻을 수 있습니다.

ABAP SAP System으로 가져 오는 방법은 무엇입니까? 나는이 시도했다 :

select SINGLE ordernr 
from ZDEVXXX_PROJECT3 INTO ordernrU 
having count(*) = 
(select max(count(*)) 
    from ZDEVXXX_PROJECT3 
    where ordernr = ordernr 
    group by ordernr) 

을하지만이 오류 얻을 :

"Unknown columnname COUNT(" 

어떻게 최대 결합 ABAP에서 카운트를? 위의 SQL 쿼리는 나를 위해 Oracle에서 작동합니다. 감사합니다.

답변

0

릴리스 6.1부터 HAVING 절에 집계를 사용할 수 있습니다. 하지만 대답은 "안돼"입니다. 집계는 형식이어야합니다 aggr({[distinct] column | *}) 그래서 당신은

select count(*) 
    into table itab 
    from ZDEVXXX_PROJECT3 
    where ordernr = ordernr 
    group by ordernr 

그런 다음 programmaticaly 카운트의 최대 값을 찾아 내지 제해야합니다. 그리고 그 상태를 유지하는 데만 사용하십시오.

-1

또는 ABAP Open SQL을 사용할 수 있습니다. 그것은 당신에게 당신의 특정 DB의 SQL에 대한 액세스를 제공하고 위에서 언급 한 쿼리를 실행할 수 있습니다.

+0

"Native SQL"과 NO는 응용 프로그램 개발에서 사용할 수있는 방법이 아닐 수 있습니다. – vwegert

+0

작동하면 모든 것이 접근 방식이 될 수 있습니다. – damluar

+0

그리고 당신이 남긴 * CENSORED *를 유지해야 할 사람들에 대해 신경 쓰지 않는다면, 그렇습니다. – vwegert