limex 0 Geschrieben 15. Mai 2014 Melden Teilen Geschrieben 15. Mai 2014 (bearbeitet) Hallo zusammen ich bin noch relativ frisch was SQL Queries angeht und stehe grade auf dem Schlauch, hoffe mir kann hier jemand helfen. Konkret geht es um eine Datenbank mit MS SQL Server 2012 (keine Expressversion) Die Ausgangslage: Ich habe zwei Tabellen welche die gleichen Spalten haben. Tabelle 1 enthält aktuelle Daten, Tabelle 2 ist das Archiv davon. Auf den Aufbau habe ich leider keinen Einfluss, da diese vom Softwareanbieter vorgegeben sind und ich nur auswerte. Nennen wir sie tab1 und tab2 Die Spalten die ich Abfragen möchte heissen: fil name pos datum Meine Abfrage sieht wie folgt aus: SELECT tab1.fil as Filiale tab1.name as Sachbearbeiter COUNT (tab1.name) as Anzahl_pro_Sachbearbeiter SUM (tab1.pos) as Positionen_pro_Sachbearbeiter DATEPART (Month, tab1.datum) as Monat FROM tab1 WHERE tab1.datum BETWEEN ('01-01-2013') AND ('31-12-2013') GROUP BY DATEPART(Month,tab1.datum), tab1.fil, tab1.name UNION SELECT tab2.fil as Filiale tab2.name as Sachbearbeiter COUNT (tab2.name) as Anzahl_pro_Sachbearbeiter SUM (tab2.pos) as Positionen_pro_Sachbearbeiter DATEPART (Month, tab2.datum) as Monat FROM tab2 WHERE tab2.datum BETWEEN ('01-01-2013') AND ('31-12-2013') GROUP BY DATEPART(Month,tab2.datum), tab2.fil, tab2.name Das Ergebnis, dass ich bekomme sieht dann so aus, wie im Excel File im Anhang Worksheet IST. Schön wäre es, wenn es wie im SOLL aussehen würde, wobei mir schon etwas geholfen wäre, wenn ich die Werte von gleichen Monaten aus tab1 + tab2 aufaddieren könnte. Hoffentlich habe ich nichts essentielles vergessen zu erwähnen. Vielen Dank schon mal für Eure Hilfe. bearbeitet 15. Mai 2014 von limex Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 16. September 2014 Melden Teilen Geschrieben 16. September 2014 Moin, das könnte so aussehen: SELECT tab_alles.fil as Filiale tab_alles.name as Sachbearbeiter COUNT (tab_alles.name) as Anzahl_pro_Sachbearbeiter SUM (tab_alles.pos) as Positionen_pro_Sachbearbeiter DATEPART (Month, tab_alles.datum) as Monat FROM ( SELECT tab1.fil, tab1.name, tab1.pos, tab1.datum WHERE tab1.datum BETWEEN ('01-01-2013') AND ('31-12-2013') UNION ALL SELECT tab2.fil, tab2.name, tab2.pos, tab2.datum WHERE tab2.datum BETWEEN ('01-01-2013') AND ('31-12-2013') ) tab_alles GROUP BY DATEPART(Month,tab_alles.datum), tab_alles.fil, tab_alles.name Gruß Kai Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.