Sodala, kann ich endlich "wieder" in Ruhe schlafen:
DrDimitris und Akretschmers Ideen waren der Weg zum Ziel (Kombination aus beiden):
Ich erstelle mir zuerst eine Funktion, die alle freien Maschinen zählt, indem ich ein "not in" einbaue:
Code:
create or replace function freie_m_nach_typ(x integer) returns table (anzahl bigint) as 'select count(maschinen.id)
from maschinen
where maschinen.id not in (select vermietungen.maschinen_id from vermietungen where mietzeit @> now()::timestamp) and maschinen.typ = x group by maschinen.typ'
language sql
Mein Herz hat schneller geschlagen, wie ich am versuchen war, Aufgrund von starken missvertrauen meiner Fähigkeiten (lol), aber jetzt kann ich wieder lachen, hier die Abfrage (wie sie in meiner Datenbank eingesetzt werden kann):
Code:
select count(maschinen.id), maschinentypen.typ, freie_m_nach_typ(maschinen.typ) from maschinen inner join maschinentypen on (maschinentypen.id = maschinen.typ) group by maschinentypen.typ, maschinen.typ
Von dem her, ich bedanke mich bei beiden von euch
Und danke, dass ihr mich hier toleriert, weil ich denke ja auch nicht immer der einfachste bin, weil ich nur kurzschlüssige, aber auch effektive und nicht in frage zu stellende Antworten gebe, wie "geht nicht"...
Akretschmer meinte, ich sollte das not in nutzen.
DrDimitri meinte, ich brauche dazu eine weitere Funktion.
Achso ja, ich habe ja SSH-Zugriff auf den externen Server
, hier (um anzugeben) die Ausgabe von Putty:
Code:
count | typ | freie_m_nach_typ
-------+-------------------+------------------
1 | Coverlockmaschine | 1
1 | Stickmaschine | 1
2 | Overlockmaschine | 2
3 | Mitgebrachte | 3
4 | Haushaltsmaschine | 3
(5 rows)
Und ja, ich habe auch nur 1 Maschine des Typs Haushaltsmaschine in Vermietungen eingetragen (von 1.1.18 00:00 bs 31.12.18 23:59)
EDIT: Habe ein Where in der SubQuery der Function vergessen, bessere ich mal aus ;D
Ich hoffe, nicht über Steine zu stolpern :S