Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Sql Select aus zwei Tabellen

Empfohlene Antworten

Veröffentlicht

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

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



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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.