SQL Server 2008 R2: Pivot-Tabelle mit Anzahl

MAK

Ich habe die folgende Tabelle zum Pivotieren.

Tabelle :

CREATE TABLE Emp_Month
(
    EMPID int,
    [Month] varchar(10)
);

Einfügung :

INSERT INTO Emp_Month VALUES(101,'July');
INSERT INTO Emp_Month VALUES(102,'June');
INSERT INTO Emp_Month VALUES(103,'May');
INSERT INTO Emp_Month VALUES(104,'April');
INSERT INTO Emp_Month VALUES(105,'March');

INSERT INTO Emp_Month VALUES(201,'July');
INSERT INTO Emp_Month VALUES(202,'July');
INSERT INTO Emp_Month VALUES(203,'June');
INSERT INTO Emp_Month VALUES(204,'July');
INSERT INTO Emp_Month VALUES(205,'June');

INSERT INTO Emp_Month VALUES(301,'January');
INSERT INTO Emp_Month VALUES(302,'January');
INSERT INTO Emp_Month VALUES(303,'February');
INSERT INTO Emp_Month VALUES(304,'February');
INSERT INTO Emp_Month VALUES(305,'February');

Erwartete Ausgabe : Ich möchte die COUNT(last_months_from_current_date) drucken

Last_6_Month    Last_5_Month    Last_4_Month    Last_3_Month    Last_2_Month    Last_1_Month
--------------------------------------------------------------------------------------------
13              10              9               8               7               4

Mein Versuch :

select *
from 
(
    SELECT t.Month,t.[Month] as Mon
    FROM Emp_Month t
) src
pivot
(
  COUNT(Mon)
  for [Month] in ([Last_6_Month],[Last_5_Month],[Last_4_Month],[Last_3_Month],[Last_2_Month],[Last_1_Month])
) piv;

Aber alle Nullwerte bekommen.

Ryan B.

Nun, das hat mir ein bisschen den Kopf verdreht. Aber das wird tun, was Sie verlangen.

Was Ihnen fehlt, ist, dass Sie für eine laufende Summe eine Möglichkeit haben müssen, Ihr Set zu bestellen. Hier wird also gebaut, um eine Monatsnummer zu bekommen. Es ist nicht das Beste, aber es funktioniert für das Beispiel.

Nach dem Gruppieren und der laufenden Summe ist ein Pivot etwas übertrieben, aber Sie haben nach einem gefragt und hier geht es. Ich hoffe es hilft.

(*Ich habe einige Änderungen an der akzeptierten Antwort vorgenommen, damit sich die Spaltenüberschriften des Pivots selbst aktualisieren. Andernfalls müssten Sie dies jeden Monat ändern.)

;WITH 
    MonthsCountedOrdered AS
    (
        SELECT count(EMPID) empCount, Month, Datediff(M,  [Month] + ' 1, 2017', getdate()) + 1 monthsPast 
        FROM Emp_Month 
        GROUP BY [Month]
    )
    , RunningTotal AS
    (
        SELECT 
            Month
            , SUM(empCount) OVER (Order By monthsPast ROWS UNBOUNDED PRECEDING) tot
            , 'Last_' + cast(monthsPast as varchar(2)) + '_Month' as ColumnHeader 
        FROM
            MonthsCountedOrdered
        WHERE
            monthsPast <= 6
    )

    SELECT *
    FROM 
    (
        SELECT t.ColumnHeader,t.tot
        FROM RunningTotal t
    ) src
    pivot
    (
      Sum(tot)
      for [ColumnHeader] in (Last_6_Month,Last_5_Month,Last_4_Month,Last_3_Month,Last_2_Month,Last_1_Month)
    ) piv;

Ergebnis:

Last_6_Month Last_5_Month Last_4_Month Last_3_Month Last_2_Month Last_1_Month
------------ ------------ ------------ ------------ ------------ ------------
13           10           9            8            7            4

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

SQL Server 2008 R2: Aktualisieren Sie Tabellenwerte, die mit einer anderen Tabelle übereinstimmen

SQL Server 2008 R2: Anzahl der Zeichenübereinstimmungen

Pivot-Tabelle mit Anzahl - Oracle SQL

So erhalten Sie eine Liste der Einschränkungen einer Tabelle mit ihren jeweiligen Spaltennamen in SQL Server 2008 R2

SQL Server 2008 R2: Cursor mit Bedingung

SQL Server 2008 R2 : Spalten einer Tabelle basierend auf Werten einer anderen Tabelle berechnen

SQL Server 2008 R2: Zellen finden, die länger als die angegebene Anzahl sind

Wie viel Speicherplatz belegt eine leere Tabelle in Microsoft SQL Server 2008 R2?

SQL Server 2008 R2: Auswahl eines Datensatzes, der in einer anderen Tabelle vorhanden ist

Microsoft SQL Server 2008 R2 mit aktiviertem TCP / IP in SQL Server Configuration Manager

Rufen Sie die Anzahl basierend auf der Spalte in der Tabelle in SQL Server 2008R2 ab

SQL Server 2008 R2: Optimierungsabfrage

BCP von einer Tabelle zu einer anderen Tabelle auf verschiedenen Servern in SQL Server 2008 R2

Wie kann ich Daten aus einer Tabelle basierend auf einer temporären Tabelle SQL Server 2008 R2 abrufen?

Wo vorhanden funktioniert nicht, wenn mit innerem Join in SQL Server 2008 R2 verwendet

SQL Server 2008 R2: Verketten Sie den Aliasnamen mit dem Spaltenwert

SQL Server 2008 R2: Abrufen von datumsbezogenen Datensätzen mit mehreren CTE

Abrufen des Tagesnamens von Datetime mit SQL Server 2008 R2

SQL Server 2008 R2: Arbeiten mit XML, das als BLOB (Bilddatentyp) gespeichert ist

Funktioniert SSDT-BI mit SQL Server 2008 R2?

Debezium 0.9.2 kann nicht mit einem SQL Server 2008 R2 verbunden werden

Akzentunabhängige Suche mit EF6 und SQL Server 2008 R2 – tschechische Sprache

Pivot-Tabelle mit mehreren Feldern in SQL Server

SQL Server-Pivot-Tabelle mit zwei Spalten

SQL Server Pivot-Tabelle mit numerischen Spalten

Unpivot und Pivot mit in der SQL Server-Tabelle

Die SQL Server 2016-Konvertierungsfunktion mit dem Datum Nulldatum unterscheidet sich von SQL Server 2008 R2

SQL Switch / Case in SQL Server 2008 R2

Verwenden mehrerer Like-Klauseln mit Dapper zum Paging in einer Abfrage mit SQL Server 2008 R2

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  3. 3

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  4. 4

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  7. 7

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  8. 8

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  9. 9

    Eclipse Oxygen - Projekte verschwinden

  10. 10

    Wie wählt man Unterschiede mit drei Tabellen aus?

  11. 11

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  12. 12

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  13. 13

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  14. 14

    Wie kann ich den Kaskadenmodus global einstellen?

  15. 15

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  16. 16

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  17. 17

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  18. 18

    Was ist schneller: SUM über NULL oder über 0?

  19. 19

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  20. 20

    Kann ich ein Tkinter-Canvas erstellen, das mehrere Zeilen in einem Text-Widget umfasst?

  21. 21

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

heißlabel

Archiv