SQL-Summe mit Unterabfrage?

8

Vielen Dank für jede Hilfe im Voraus, ich kann meine SQL-Kenntnisse nicht um diese einpacken ... Ich habe zwei Tabellen wie folgt:

Einstellungen

  

Kunden-ID ViewerLimit
  1 50
  2 50

Verteilung

  

Kunden-ID ServerIP
  1 Stream3
  1 Stream4
  2 stream3

Ich möchte die Belastung für jeden Server berechnen. Ein Kunde teilt die Last auf, wenn er mehr als einen Server hat. Daher legt Kunde 1 eine Last von 25 auf jeden Server. Das Ergebnis, das ich versuche zu bekommen, ist das:

  

ServerIP Laden
  stream3 75
  stream4 25

Ich habe versucht, eine ähnliche Summenfunktion zu erstellen:

%Vor%

Aber ich kann keine Unterabfrage innerhalb einer Summenfunktion machen. Es gibt viele Kunden und möglicherweise viele Server pro Kunde, so dass es zu komplex wird, dies manuell zu tun. Ich schätze jede Eingabe.

    
gbusman 03.04.2012, 00:35
quelle

3 Antworten

6

Hier ist eine uninspirierte Version mit Count in der abgeleiteten Tabelle:

%Vor%

Sql Fiedel, um herumzuspielen

UPDATE - ein Erklärungsversuch

Abgeleitete Tabellen werden verwendet, um Ad-hoc-Ergebnismengen zu erzeugen, die mit dem Hauptteil einer Abfrage verknüpft werden können. Es wird in from-Klausel platziert und in Klammern eingeschlossen. Sie können alles verwenden, was ein gewöhnliches Select verwenden kann, Top, Sortieren nach, Aggregatfunktionen usw. Das einzige, was Sie nicht verwenden können, ist die Korrelation zu einer Tabelle im Hauptteil. Oh, und CTE. Abgeleitete Tabelle muss Alias ​​sein.

In der vorherigen Beispiel-abgeleiteten Tabelle wählt 'a' die Anzahl der Server nach Kunden-ID aus. Der Hauptteil sieht es als Tabelle mit den Spalten CustomerId und ServerCount, die als eine beliebige Spalte aller aufgelisteten Tabellen verwendet werden können. Ein Join auf customerid wird zwischen Einstellungen und 'a' durchgeführt. Da es sich um eine 1: 1-Beziehung handelt (beide Tabellen erzeugen eine einzelne Zeile bei einer customerid), findet keine Duplizierung statt.

    
Nikola Markovinović 03.04.2012, 01:03
quelle
1

Wie wäre es, eine Anzahl von Servern in einer Sub-Abfrage zu zählen und diese einer Abfragevariablen zuzuweisen und diese Abfragevariable dann innerhalb der Summenfunktion zu verwenden?

    
Anand Nandakumar 03.04.2012 00:38
quelle
1
%Vor%     
quzary 03.04.2012 07:51
quelle

Tags und Links