2013-12-20 4 views
1

선택 쿼리를 만들려고 시도하지만 여전히 어려움을 겪고 있습니다. 내 목표는 총액 AMOUNT에서 총 금액을받는 것이지만 각 행 COLUMN_ID에 대해 50 미만의 값이 적어도 하나 이상 있어야하고 50 이상의 값이 하나 이상이어야합니다. 총 금액은 각 값이 50보다 작은 값을 요약하여 계산해야합니다. 이러한 총량이 100여러 조건을 포함하는 Select 문

  1. 하자 말할 미만이어야 I 값이 (90, 20, 40) - 결과 (I 값을 가지고, 52라고 SUM (AMOUNT) = 60
  2. 하자되어야 , 70, 20, 40) - 결과는 SUM (AMOUNT) = 60이어야합니다.
  3. 값이 (32, 7)인데, 50을 초과하는 값이 없으므로 결과가 없습니다.
  4. 즉, 값이 있습니다. (60, 150) - 결과가 없습니다. 인 값없는 적은 50
  5. 하자 말 그럼, 값 (75, 20, 40, 45)이 없다 - 어떤 결과를 SUM (금액) = 105 이렇게 100

선택 쿼리가 내가 만든 그대로 단지 추가해야합니다 아래 각 하나 미만 50

SELECT COLUMN_ID, SUM(AMOUNT) 
    FROM TABLE1 
    WHERE ... 
    GROUP BY COLUMN_ID 
    HAVING MIN(AMOUNT) < 50 AND MAX(AMOUNT) > 50 AND SUM(AMOUNT) < 100; 

답변

0
SELECT COLUMN_ID 
     , SUM(case when ammount < 50 then ammount else 0 end) sumsmall 
FROM T 
WHERE ... 
GROUP BY COLUMN_ID 
HAVING SUM(case when ammount < 50 then ammount else 0 end) > 0 
    and SUM(case when ammount > 50 then ammount else 0 end) > 0 
    and SUM(case when ammount < 50 then ammount else 0 end) < 100 
+0

Vittore입니다 값의 합 (양), 당신의 도움을 주셔서 감사합니다. 불행히도 귀하의 선택은 정확히 무엇을하고 있는지를 설명하지 않습니다. 먼저 50보다 큰 값이 있는지 먼저 확인해야합니다. 그렇다면 50보다 작은 값을 모두 sumarize해야합니다. 마지막으로 50보다 작은 값의 총 값이 100보다 작은 지 확인합니다. 가능합니까? – user3033092

+0

@ user3033092 업데이트 내 대답 – vittore

+0

이것은 정확히 내가 필요로하는 것, 매우 당신의 도움에 감사드립니다, 해피 크리스마스 :) – user3033092