2017-11-18 1 views
0

Ich habe zwei Tabellen Tabelle a und Tabelle b. Tabelle A hatschreiben SQL-Abfrage mit mehreren anderen und wo Anweisungen

  1. Systemname
  2. Mem1
  3. Mem2
  4. GBL_Mem

TABELLE B

  1. Systemname
  2. OS

Der Ausgang erforderlich ist 3 Spalten Systemname OS und GBL_mem

GBL_mem Daten sollten zwei Formeln entsprechen

  1. wenn os = NT avg von GBL_mem
  2. wenn <> NT avg von mem1 + avg von mem2

Hilfe ist willkommen.

Vielen Dank im Voraus

+0

Bearbeiten Sie Ihre Frage und Beispieldaten und die gewünschten Ergebnisse liefern. –

+0

Bitte bearbeiten Sie die Frage, um zu erklären, ob Tabelle A für jeden Systemnamen genau einen oder möglicherweise mehrere Einträge hat. –

+0

Welches [DBMS] (https://en.wikipedia.org/wiki/DBMS) Produkt verwenden Sie? Postgres? Orakel? "_SQL_" ist nur eine Abfragesprache, nicht der Name eines bestimmten Datenbankprodukts. –

Antwort

0

Ich denke, das im Grunde ein join und group by ist, mit etwas bedingter Logik:

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; 
Verwandte Themen