选择具有多个条件的语句

时间:2013-12-20 16:46:46

标签: sql

我尝试创建选择查询但仍在苦苦挣扎。我的目标是从colum 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(AMOUNT)= 105所以超过100
  6. 我在下面创建的选择查询只需要添加:每个值小于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;
    

1 个答案:

答案 0 :(得分: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