Tages- Datensätze ausgeben auch wenn nichts vorhanden ist

Hallo,
ich habe einen Monat mit sagen wir 31 Tagen, an 5 dieser Tage gibt es Daten. ich möchte aber auch Datensätze wenn es keine Daten gibt, also sowas wie:
1…Daten
2…
3…
4…Daten
usw.
geht das irgendwie mit generate_series?

Vielen Dank euch shcon mal
Grüße

Andreas

Ja, sowas in der Art:

 select g.dt::date as datum, 
        t.* -- Spalten der eigentlichen Tabelle
 from generate_series(date '2023-10-01', date '2023-10-31', interval '1 day') as g(dt)
     left join the_table t on t.some_date = g.dt::date
1 „Gefällt mir“

Hallo castrop,
danke für deine schnelle Antwort, dass ist es so noch nicht.
Ich brauche eben auch einen Datensatz aus dem generate_series heraus, auch wenn in der anderen Tabelle kein Datensatz drin ist.
Ich habe deines mal eingebaut bei mir:

SELECT 
	g.day,
	EXTRACT(DAY FROM r_date),
	EXTRACT(DAY FROM NOW()),
	CASE
		WHEN (something) = 0
		THEN 0
		ELSE
		some_data
	END as some_data
FROM 
generate_series(1,31) as g(day)
left join some_table on EXTRACT(DAY FROM r_date) = g.day

WHERE (
	   EXTRACT(MONTH FROM r_date) = EXTRACT(MONTH FROM NOW())
	   AND
	   EXTRACT(YEAR FROM r_date) = EXTRACT(YEAR FROM NOW())
	   )
GROUP BY EXTRACT(DAY FROM r_date),g.day

Ich bekomme die Ausgabe:
image

möchte aber für alle 31 Tage einen Datensatz, auch wenn er leer ist, sprich in etwa so:
1 7052
2 141
3 0
4 no_data
5 no_data
6 31
7 681
usw.

Hoffe ich konnte mich klarer ausdrücken :wink:

Wäre super wenn mir oder jemand helfen könnte.

Vielen Dank

Grüße

Andreas

Deine WHERE Bedingung macht aus dem outer join wieder einen inner join. Das muss alles in die join Bedingung des LEFT JOIN

ich danke dir vielmals, funktioniert super!

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.