2014-10-30 3 views
0

제목이 내 문제를 claryifying 아니지만이 어떻게 설명 할 수 있습니다.SQL 쿼리 결과의 위치 변경

나는 다음과 같은 결과를 반환하는 쿼리가 있습니다

enter image description here

와 (모두 세에는 null 값이없는 한 세에서 라인의 수를 줄일 수있는 방법이 있는지 궁금 해서요 400, 1000 및 21820)을 연회와 함께 설명합니다.

읽어 주셔서 감사합니다.

추신 : 이것은 단지 쿼리 결과의 일부를 캡처 한 것으로 많은 중복 된 행이 있습니다. 도움이된다면 제 쿼리를 게시 할 수 있습니다. 난 .. 거기에 몇 가지 선택 케이스를 사용하고

편집 :

너희들 감사하지만 난 해결하는 별개의 합 조항

답변

0

또 다른 하나의 입력에 메인 쿼리의 결과를 복사하고 추가하여 오라클 마지막으로, 당신은 "때" 예를 사용할 수 있습니다

SELECT 
DESCRIPTION, 
CASE WHEN SUMPRICE1 IS NULL THEN 
    CASE WHEN SUMPRICE2 IS NULL THEN 
     CASE WHEN SUMPRICE3 IS NULL THEN 
      0 
     ELSE SUMPRICE3 END 
    ELSE SUMPRICE2 END 
ELSE SUMPRICE1 END AS SUMPRICE 
FROM MY_TABLE 
GROUP BY DESCRIPTION, SUMPRICE 

꺼짐 물론 이것은 당신이 열 정적 번호가 단지 경우 useble입니다.

편집 :

SELECT DESCRIPTION, 
MAX(SUMPRICE1) AS SUMPRICE1, 
MAX(SUMPRICE2) AS SUMPRICE2, 
MAX(SUMPRICEN) AS SUMPRICEN 
FROM MY_TABLE 
GROUP BY DESCRIPTION 

또는 당신은 방지하기 위해 케이스를 사용할 수 있습니다 : 당신이 열을 병합하지 않으려면 내가 문제를 얻을하지 않지만 생각, 당신은 사용할 수 있습니다 임의의 행의 경우 null에는 값이 없습니다.

SELECT DESCRIPTION, 
CASE WHEN MAX(SUMPRICE1) IS NULL THEN 0 ELSE WHEN MAX(SUMPRICE1) END AS SUMPRICE1, 
CASE WHEN MAX(SUMPRICE2) IS NULL THEN 0 ELSE WHEN MAX(SUMPRICE2) END AS SUMPRICE2, 
CASE WHEN MAX(SUMPRICEN) IS NULL THEN 0 ELSE WHEN MAX(SUMPRICEN) END AS SUMPRICEN 
FROM MY_TABLE 
GROUP BY DESCRIPTION 
1
SELECT description, MAX(number1) AS number1, MAX(number2) AS number2) 
FROM myTable 
GROUP BY description