Gibt die Summe der Elemente zurück, je nachdem, um welchen Typ es sich handelt
-
09-06-2019 - |
Frage
Ich habe ein Feld, das ich summieren muss, sagen wir namentlich genannten Elementen
Wenn ich „gruppiert“ sage, meine ich, dass es einen LEFT OUTER JOIN zu einer anderen Tabelle gibt. Die vorherige Tabelle hat einen Typ für die Elemente und die Tabelle, die verknüpft wird, hat eine für diesen Elementtyp zugewiesene Gruppe
Tut mir leid, Leute, ich bin ein bisschen neu in SQL. Ich werde ausprobieren, was Sie mir gegeben haben, und mich dann bei Ihnen melden
Ok, ich habe das Gefühl, dass wir uns nähern, nur noch nicht alle. Ich schaffe es, sie zu trennen, aber das Problem besteht darin, dass beide Gruppen in derselben Zeile zusammengefasst werden müssen, was schwierig ist, weil ich auch mehrere LEFT OUTER JOINs involviert habe
Bei Tyler sieht es so aus, als ob es auch funktionieren könnte, also versuche ich, das ganz schnell herauszufinden
Alains scheint der richtige Weg zu sein, aber ich muss noch ein bisschen daran feilen
Lösung
Vielleicht verstehe ich die Komplexität Ihrer Frage nicht, aber ...sollte das nicht gehen?
SELECT groupname, SUM(value)
FROM items
WHERE groupname IN ('a', 'b')
GROUP BY groupname
Und wenn es Ihnen egal ist, zu welchem von a oder b der Artikel gehört, reicht Folgendes aus:
SELECT SUM(value)
FROM items
WHERE groupname IN ('a', 'b')
Andere Tipps
Du willst so etwas wie
SELECT column,SUM( column ) FROM table GROUP BY column
Ist das (Tylers Antwort) das, was die Frage meinte, oder ist es einfach das;
SELECT sum(item), groupingField FROM someTable GROUP BY groupingField
oder auch:
SELECT count(*), item FROM someTable GROUP BY item
was zu Ergebnissen wie diesem führen wird:
sum(item) | groupingField
-------------+-----------------------
71 | A
82 | B
Fragender, könnten Sie vielleicht klarstellen, was Sie meinten oder ob ich es zu stark vereinfache?
Versuche dies:
SELECT B.[Group], COUNT(*) AS GroupCount
FROM Table1 A
LEFT JOIN Table2 B ON B.ItemType=A.ItemType
GROUP BY B.[Group]