Zum Inhalt springen

Sql Select aus zwei Tabellen


Empfohlene Beiträge

Geschrieben

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

Geschrieben

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



Geschrieben

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.

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...