Veröffentlicht 25. Oktober 201014 j Hallo zusammen, möchte eine Abfrage aus zwei Tabellen durchführen, die unterschiedliche Datumseinträge haben. Das Ergebnis sollte die Summe aus beiden Tabellen zu den verschiedenen Datumseinträgen sein. Leider bekomme ich bei der Abfrage immer wieder neue Fehler. Vielleicht könnt Ihr mir helfen. Server: SQL Server 2005 Express Beispiel Tabelle1 und Tabelle2 : 25.10.2010 ... 25.10.2010 ... 25.10.2010 ... 25.10.2010 ... 25.10.2010 ... 25.10.2010 ... 24.10.2010 ... 23.10.2010 ... 24.10.2010 ... 22.10.2010 ... 22.10.2010 ... 22.10.2010 ... Ergebnis sollte sein: Spalte1 Spalte2 6 - 25.10.2010 2 - 24.10.2010 1 - 23.10.2010 3 - 22.10.2010 meine sql Abfrage: select count([tabelle1].[zeitpunktdruck]) + count([tabelle2].[zeitpunktdruck]) , Zeitpunkdruck as Datum from tabelle1 tabelle2 Group by year(zeitpunktdruck), month(zeitpunktdruck), day(zeitpunktdruck) Order by zeitpunktdruck DESC Danke für Eure Hilfe
25. Oktober 201014 j Also meine angabe ist ohne gewähr aber es müsste doch eigentlich nur eine Summe relevant sein. Wenn eine Tabelle ein anderes Datum als die andere hat ist es doch umgekehrt das gleiche :confused: Insofern würde ich folgendes Statement vorschlagen: select a.count(*) as Summe, a.Datum, b.Datum from tabelle1 a, tabelle2 b where not a.Datum = b.Datum group by a.Datum order by a.Datum
25. Oktober 201014 j Deine schreibweise des Statements nehme ich auch für gewöhnlich, da diese für mich intuitiver ist. Du musst bei Verwendung der "Count" Funktion allerdings nach alle gelisteten Spalten Ggoupieren. Bei Oracle und SQL-Server macht die Serverseitige Abfrageoptimierung ausserdem aus dem Statement ein SELECT COUNT(*) AS Summe, a.Datum AS 'Datum von A', b.Datum AS 'Datum von B' FROM Tabelle1 AS a CROSS JOIN Tabelle2 AS b WHERE (NOT (a.Datum = b.Datum)) GROUP BY a.Datum, b.Datum ORDER BY 'Datum von A' Mit outer/inner/left/right joins kann man abgesehen von performanteren Statements auch die ergebnise besser steuern.
26. Oktober 201014 j Danke für Eure Antworten, doch leider funktioniert die Abfrage nicht. Vielleicht hängt es mit dem Datum zusammen. Meine Abfrage auf die einzelnen Tabellen liefert das richtige Ergebnis, nur müssen die beiden zusammengefügt werden. Abfrage1 SELECT Count([Tabelle1].ZeitpunktDruck) AS [Anzahl Druck], Right(Right('0',1)+Right(Day([Zeitpunktdruck]),2),2)+'.'+Right(Right('0',1)+Right(Month([ZeitpunktDruck]),2),2)+'.'+Right(Year([ZeitpunktDruck]),4) AS Datum FROM [Tabelle1] where ZeitpunktDruck is not null GROUP BY Year([Zeitpunktdruck]), Month([Zeitpunktdruck]), Day([ZeitpunktDruck]) ORDER BY Year([Zeitpunktdruck]) DESC , Month([Zeitpunktdruck]) DESC , Day([ZeitpunktDruck]) DESC und Abfrage 2 SELECT Count([Tabelle2].ZeitpunktDruck) AS [Anzahl Druck], Right(Right('0',1)+Right(Day([Zeitpunktdruck]),2),2)+'.'+Right(Right('0',1)+Right(Month([ZeitpunktDruck]),2),2)+'.'+Right(Year([ZeitpunktDruck]),4) AS Datum FROM [Tabelle2] where ZeitpunktDruck is not null GROUP BY Year([Zeitpunktdruck]), Month([Zeitpunktdruck]), Day([ZeitpunktDruck]) ORDER BY Year([Zeitpunktdruck]) DESC , Month([Zeitpunktdruck]) DESC , Day([ZeitpunktDruck]) DESC
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.