2017-10-24 1 views
0

Ist es möglich, die Summe einer Select-Anweisung zu erhalten?TSQL - Summe und Select

sum(Select (VPTOTALS.TIMEINSECONDS/3600) 
    from Table XXXX 
    inner join Table YYYY 
    on ..... = ...... 
    and ..... = .....) as Hours` 

Ich habe es getan gesehen, aber ich kann es einfach nicht für mich arbeiten. Ich erhalte Syntaxfehler sum(Select und ) als Stunden

Dank

+0

Ist dies in einer Auswahl, die yiu nicht angezeigt haben, warum haben Sie es ein Alias ​​gegeben? –

+1

Tsql und MySQL ??? Entweder Sie verwenden MySQL oder Sie verwenden tsql in Verbindung mit MS SQL Server. – jarlh

Antwort

0

Nein, Sie tun das select eines sum():

(Select sum(VPTOTALS.TIMEINSECONDS/3600) 
from Table XXXX inner join 
     Table YYYY 
     on ..... = ...... and 
     ..... = ..... 
) as Hours 
0

Sie verwenden können:

SELECT SUM(VPTOTALS.TIMEINSECONDS/3600) 
FROM Table XXXX 
INNER JOIN Table YYYY on ..... = ...... 
    and ..... = .....) 

Dies wird automatisch summieren Sie die gesamte Abfrage, da in Ihrer SELECT-Anweisung keine anderen nicht aggregierten Spalten vorhanden sind.

Wenn Sie nicht Aggregate in Ihrer Abfrage müßten Sie eine Gruppe von Klausel, spalten sie von diesen Variablen enthalten wollten:

SELECT type, 
     SUM(VPTOTALS.TIMEINSECONDS/3600) 
FROM Table XXXX 
INNER JOIN Table YYYY on ..... = ...... 
     and ..... = .....) 
GROUP BY type 
0

Wenn das beabsichtigt ist, um eine korrelierte Unterabfrage, dann kann es sein,

Select t1.Col1 
, sum(select sum(somecol) from sometbl t2 where t2.fk = t1.id) 
    as hours 
From outertbl t1 
Group by t1.col1 

Aber dieses Beispiel ist erfunden und nicht effizient.