Betrachten Sie dieses vereinfachte Szenario für eine SQL Server-Datenbank. Dies ist nicht genau die Art, wie meine Tabellen erstellt werden, aber das Beispiel ist genug für das, was ich wissen muss.Wie kann ich eine konsolidierte Version meiner SQL Server-Tabelle anzeigen?
Ich habe eine Produkttabelle mit einem Primärschlüssel, sagen wir, IdProduct
, und einige andere Spalten, wie der Produktname und die Beschreibung.
Dann habe ich etwas wie eine Gesamtumsatz pro Monat Tabelle (SalesPerMonth
). Diese zweite Tabelle enthält einige Felder wie
IdMonthlySale (key)
IdProduct (foreign key to the main table)
TotalSales (money)
Monthy (int or smallint)
Year (int or smallint)
Die zweite Tabelle enthält die detaillierten Informationen. Wir können den Verkauf eines bestimmten Produkts verfolgen, indem Sie eine SELECT * FROM SalesPerMonth WHERE ProductId = xx
Aber sagen wir, ich möchte diese Daten anzeigen, als ob es nicht normalisiert wurde. Ich möchte eine flache Produkt X Monat/Jahr Tabelle, die die letzten 8 Monate zeigt. Etwas mehr oder weniger wie folgt:
Prod * Jan * Feb * Mar * Apr * May * Jun * Jul * Aug *
-----------------------------------------------------------------------------
Prod 1 * 500.00* 480.00* 470.00* 510.00* 555.00* 530.00* 440.00* 490.00*
-----------------------------------------------------------------------------
Prod 2 * 650.00* 680.00* 670.00* 710.00* 755.00* 630.00* 740.00* 820.00*
Nun. Ich hoffe, du kommst auf die Idee. Ich muss die resultierende Tabelle abflachen und ich muss es auf diese Weise an meine Benutzer ausgeben. Wie kann ich das erreichen? Danke im Voraus.
Ja, ich es tun. .. Ich werde nachsehen. –
Danke, ich werde versuchen, mit Ihrem Hinweis zu gehen. Ich werde vielleicht wieder hierher kommen und mehr Sachen fragen, aber das ist sehr hilfreich. –
Danke für die Hilfe. Am Ende, nach einigen Recherchen, fand ich diesen tollen Artikel (http://www.sommarskog.se/dynamic_sql.html) über dynamisches SQL (weil ich ein dynamisches SQL benötigte, um die Spalten zu finden, die ich in meinem Pivot benötigte) und diese fantastische Stored Procedure (http://www.sommarskog.se/pivot_sp.sp), die dynamisch die Felder findet, die Sie in Ihrer Abfrage benötigen, und sie dynamisch als Spalten platziert. –