Ich habe zwei Tabellen wie folgt aus:Fasst Untergruppen mit SQL
| SalesId | SalesDate | SalesStore | | StoreId | Name |
|---------|-----------|------------| |---------|---------|
| 1 | 5/3/17 | 3 | | 1 | Store A |
| 2 | 2/2/18 | 3 | | 2 | Store B |
| 3 | 6/6/17 | 2 | | 3 | Store C |
| 4 | 7/8/17 | 3 |
Ich mag würde wissen, ob es möglich ist, nur die folgende Ausgabe mit SQL zu generieren:
| Year | Store A | Store B | Store C |
|---------|---------|---------|---------|
| 2017 | 0 | 1 | 2 |
| 2018 | 0 | 0 | 1 |
Grundsätzlich möchte ich die Summe von Verkäufen jedes Geschäftes nach Jahr.
konnte ich die Summe aller Geschäfte bekommen mit:
SELECT YEAR(SalesDate) [Year], Count(1) [Sales Count]
FROM Sales
GROUP BY YEAR(SalesDate)
ORDER BY 1
Aber ich würde gerne wissen, ob es möglich ist, diese mit einer einzigen SQL-Abfrage zu tun.
Wahrscheinlich müssen Sie über PIVOT Abfragen lesen –
Sie möchten PIVOT oder dynamische Pivot, wenn die Anzahl der SalesStores nicht behoben ist. Viele Antworten finden Sie hier. – Serg
Wenn es sich um eine feste Anzahl von Speichern handelt, kann dies durch bedingte Aggregation erfolgen. Wenn nicht, wie die Leute vor mir sagten, ist PIVOT der richtige Weg. – sagi