2016-09-29 4 views

Antwort

2

Verwenden UNION ALL alle Werte aus allen 18 Tischen zu bekommen. Dann verwenden Sie SUM Funktion.

Abfrage

SELECT SUM(t.result) FROM(
    SELECT result FROM table_1 
    UNION ALL 
    SELECT result FROM table_2 
    UNION ALL 
    ........................... 
    ........................... 
    SELECT result FROM table_18 
)t; 

Wenn Sie den result Spaltenwert für bestimmte IDs aus der Tabelle zu wollen. Verwenden Sie dann WHERE.

+0

@bassrek: Eigentlich ist die Frage nicht so klar. Ich denke Ergebnis Spaltenwert für die ID = 1 aus allen Spalten. Dann wäre es mit 'WHERE' Bedingung möglich. – Wanderer

+0

@Ulas - sieht aus wie du meinen Kommentar gesehen hast, bevor ich ihn gelöscht habe. Ich habe deine letzte Zeile über die 'WHERE'-Klausel bemerkt, nachdem ich meine Notiz gepostet habe, also habe ich gelöscht :) – bassrek

1

Es ist nicht schön, aber so etwas wie dies funktionieren würde

SELECT a.result + b.result + c.result -- (All the way to r.result...) 
FROM TableA a 
INNER JOIN TableB b 
    ON a.ID = b.ID 
INNER JOIN TableC c 
    ON b.ID = c.ID 
-- (All the way to TableR ...) 

Sie könnten mit OUTER JOINS zu prüfen, wenn Sie absolut sicher sind, dass die ID immer in allen Tabellen existieren.

Verwandte Themen