Mehrere getrennte Summen mit separaten Filtern auf einem Tisch durchführen

Ich habe einen Tisch mit einem Betrag Spalte ein referencefeld und eine ID Spalte. Was ich tun muss, ist Summe der Betrag auf der Grundlage von verschiedenen Kombinationen von ID's für jede reference. Es gibt neun verschiedene Kombinationen insgesamt, die ich dann in einen separaten Tisch insert muss.

Der beste path, den ich gefunden habe, ist, einen Cursor zu verwenden und jeden SUM separat zu machen, den Betrag einer variables zuzuordnen und die Tabelle für jede reference und für jede Kombination zu aktualisieren.

Hoffe das macht Sinn!

Was ich hoffte, herauszufinden ist – gibt es einen besseren path, es zu tun?

Vielen Dank.

    Du könntest so etwas wie:

    SELECT SUM(CASE WHEN (Id = 9) THEN Val ELSE 0 END) ConditionalSum From dbo.Table 

    Sie können viele dieser SUMs mit verschiedenen Bedingungen in einer Abfrage haben.

    Sie können eine Tabelle namens so etwas wie combos mit den folgenden Spalten erstellen:

    • Name der Kombination
    • reference-ID in Kombination

    (und vielleicht andere nützliche Spalten wie eine ID und Schöpfungszeit, aber das ist hier nicht wichtig).

    Legen Sie Ihre Kombinationen in diese Tabelle, so etwas wie:

     First10 1 First10 2 ... First10 10 MyFavorite 42 

    Was auch immer die Paare sind.

    Dann können Sie mit einer einzigen Abfrage was tun?

     select c.comboName, sum(val) as ConditionalSum from t join combos c on t.referenceId = c.referenceId group by c.comboName