用多个else和where语句编写SQL Query

时间:2017-11-18 15:51:12

标签: sql

我有两个表a和表b。 表A

  1. SystemName
  2. Mem1
  3. Mem2
  4. GBL_Mem
  5. 表B

    1. 的SystemName
    2. OS
    3. 所需的输出为3列 Systemname OS和GBL_mem

      GBL_mem数据应该匹配两个公式

      1. if os = NT avg of GBL_mem
      2. 如果os<> NT avg of mem1 + avg of mem2
      3. 非常感谢帮助。

        提前致谢

1 个答案:

答案 0 :(得分:1)

我认为这基本上是joingroup by,带有一些条件逻辑:

select a.systemname, b.os,
       (case when b.os = 'NT' then avg(a.GBL_Mem)
             else avg(a.mem1) + avg(a.mem2)
        end) as new_col
from a join
     b
     on a.systemname = b.systemname
group by a.systemname, b.os;