이 구문 만 사용하도록 제한되어 있다고 가정 해 봅니다 (MAX 또는 MIN과 같은 집계 함수를 사용할 수없고 GROUP BY 절을 사용할 수 없으며 ' 이유를 물어보십시오) :GROUP BY 및 집계 함수를 사용하지 않고 쿼리 실행
{SQL query} ::= SELECT [DISTINCT | ALL] [TOP {integer}]
{select_list}
FROM {table_reference}
[WHERE {search_condition}]
[ORDER BY {orderby} { ',' {orderby} } ]
ITEM_ID라는 식별자가있는 ITEM 테이블이 있다고 가정 해 봅니다. 주어진 ITEM_ID에 대해 동일한 ITEM_ID이지만 SHIP_DATE가 다른 많은 행을 가질 수 있습니다. 이전 구문이 제공된 가장 최근의 SHIP_DATE가있는 ITEMS 만 반환하도록 쿼리를 작성하려면 어떻게해야합니까?
ORDER BY (최대 SHIP_DATE에서 최소 SHIP_DATE까지 정렬)와 결합 된 TOP N (결과 집합의 첫 번째 행 검색)을 이미 사용해 보았습니다. 어떤 아이디어 나 제안? 내가 뭘하려
이 같은 것입니다 :
SELECT TOP N * FROM ITEM WHERE ITEM_ID='X' ORDER BY SHIP_DATE DESC
이 실제로 이전 쿼리가 작동하는 것 같군,하지만 그것을 할 수있는 더 좋은 방법이 있는지 궁금 하군요.
http://publib.boulder.ibm.com/infocenter/p8docs/v4r5m1/index.jsp?topic=/com.ibm.p8.doc/developer_help/content_engine_api/guide/query_sql_syntax_ref.htm 거기 보인다
"작동하지 않음"이 작동하지 않습니다. 정확히 무엇을 시도했는지, 예상 한 것과 당신이 얻은 것에 대해 훨씬 더 자세하게 설명하십시오. –
감사합니다. 나는 조금 더 명확하게 설명했습니다. –
수정 됨, TOP 1 대신에 TOP N이어야합니다. –