2016-04-07 6 views
2

Wie kann ich SQL und SUM Monatsdaten (Viertelansicht) verwenden? Ich werde nicht Prozeduren verwenden usw.Summe der Verkäufe nach Quartal

Current data: 
    ID | Sales 
201601 | 5 
201602 | 15 
201603 | 5 
201604 | 20 
201605 | 8 
201606 | 2 

...

Spalte Meine ID Stored wie jjjjmm

Was ich will, ist:

Quarter | Sales 
    Q1 | 25 
    Q2 | 30 

.... 
+0

Bitte überprüfen Sie meine Antwort. Wenn Sie es nützlich fanden, akzeptieren Sie es bitte und/oder upvote es, so dass zukünftige Suchende von ähnlichen Problemen dieses nützlich finden. [https://stackoverflow.com/help/someone-answers] – DhruvJoshi

Antwort

0

Sie können eine Abfrage versuchen, wie unter

SELECT 
    LEFT(ID,4) Year, 
    'Q'+ CAST((CAST(RIGHT(ID,2) AS INT)-1)/3 +1 AS varchar) Quarter, 
    SUM(Sales) Sales 
FROM 
    Yourtable 
GROUP BY 
    LEFT(ID,4), 
    'Q'+ CAST((CAST(RIGHT(ID,2) AS INT) -1)/3 +1 AS varchar) 
order by year 

SQL demo link

+0

Danke. Bitte überprüfen Sie das Beispiel SQL [link] (http://sqlfiddle.com/#!6/3b5ba/1) die Berechnung ist nicht korrekt. Weißt du, warum? –

+0

Antwort aktualisiert! Danke, dass Sie unseren Irrtum in Berechnungen gezeigt haben. Siehe aktualisierten Link http://sqlfiddle.com/#!6/3b5ba/6 – DhruvJoshi

0

können Sie DATEPART und QUARTER verwenden Sie das Viertel eines DATETIME zu bekommen. Sie müssen nur mit DATEFROMPARTS erstellen und Ihre ID-Spalte analysieren.

Die CONCAT fügt einfach "Q" zur Periodennummer hinzu.

SELECT LEFT(id,4) [Year], 
     CONCAT('Q',DATEPART(QUARTER, DATEFROMPARTS(LEFT(id,4), RIGHT(id, 2), 1))) [Quarter], 
     SUM(Sales) [Sales] 
FROM yourtable 
GROUP BY LEFT(id,4), DATEPART(q, DATEFROMPARTS(LEFT(id,4), RIGHT(id, 2), 1)) 
ORDER BY [Year], [Quarter] 
+0

Derzeit ist die Berechnung über alle Jahre. Beispiel [SQL] (http://sqlfiddle.com/#!6/3b5ba/3) Wie kann ich das ändern, um nur das Quartal für jedes Jahr zu erhalten? –

+0

indem Sie das Jahr 'LEFT (ID, 4)' zu Ihrer Auswahl und Gruppe hinzufügen. http://sqlfiddle.com/#!6/3b5ba/9 – JamieD77

Verwandte Themen