2013-12-20 218 views
1

我嘗試創建選擇查詢,但仍然掙扎。我的目標是收到總金額AMOUNT的總金額,但是對於每一行COLUMN_ID,必須至少有一個值小於50並且至少有一個值大於50.總金額必須通過彙總值來計算,其中每一行小於50,和該總量必須少於100選擇多個條件的語句

  1. 設說,我具有值(90,20,40) - 的結果應該是SUM(AMOUNT)= 60
  2. 設說,我具有值(52 ,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

維託雷,感謝你的幫助。不幸的是,你的選擇不是完全按照它的設想做的。我需要首先檢查是否有任何值大於50的值,如果是這樣,我需要將所有小於50的數值歸總,最後我檢查小於50的值是否小於100。有可能做到嗎? – user3033092

+0

@ user3033092更新了我的回答 – vittore

+0

這正是我需要的,非常感謝您的幫助,聖誕快樂:) – user3033092