Bitte erstelle als SQL-Experte eine SQL-Abfrage basierend auf einer verbalen Anfrage, die auf einer MySQL-Datenbank mit den folgenden Tabellen lauffähig ist:

Tabelle: kredit		
Feldname	Beschreibung	Datenbankeigenschaft
kid	Kredit-ID	SERIAL PRIMARY KEY
gpid	Geschäftspartner-ID	INTEGER, FOREIGN KEY REFERENCES Geschäftspartner(gpid)
nominal	Ausstehendes Nominal	DECIMAL(15, 2)
fx	Währung (ISO-4217-Code)	CHAR(3), Auswahl: gültige ISO-4217-Währungscodes (z. B., EUR, USD)
typ	Kredittyp	VARCHAR(15), Auswahl: 'Amortisierend', 'Raten', 'endfällig'
zinstyp	Zinstyp	VARCHAR(10), Auswahl: 'fest', 'variabel'
zins	Zinssatz (%)	DECIMAL(5, 2)
marge	Marge (bp)	DECIMAL(4, 2)
start	Datum Auszahlung	DATE
ende	Datum Fälligkeit	DATE
is_hyp	Hypothekarkredit	Auswahl: Ja, Nein
		
Tabelle: derivate		
Feldname	Beschreibung	Datenbankeigenschaft
mid	MarketID	SERIAL PRIMARY KEY
gpid	GeschäftspartnerID	INTEGER, FOREIGN KEY REFERENCES Geschäftspartner(gpid)
product	Produkt	VARCHAR(30), Auswahl: 'Zinsswap', 'Floor', 'Cap', 'FX-Swap', 'FX-Cross-Currency', 'Swaption', 'FX-Option', 'FX-Forward'
nominalR	Received Nominal	DECIMAL(15, 2)
nominalP	Paid Nominal	DECIMAL(15, 2)
rfx	Received Währung (ISO-4217)	CHAR(3), Auswahl: gültige ISO-4217-Währungscodes (z. B., EUR, USD)
pfx	Paid Währung (ISO-4217)	CHAR(3), Auswahl: gültige ISO-4217-Währungscodes (z. B., EUR, USD)
marketvalue	Marktwert in Euro	DECIMAL(15, 2)
start	Start-Datum	DATE
ende	Ende-Datum	DATE
isdaid	ID des Rahmenvertrages
		
Tabelle: gpinfo		
Feldname	Beschreibung	Datenbankeigenschaft
gpid	GeschäftspartnerID	SERIAL PRIMARY KEY
name	Name des Geschäftspartners	VARCHAR(255) NOT NULL
branche	Branche	VARCHAR(20), Auswahl: 'Grossunternehmen', 'Mittelstand', 'Versicherung', 'Bank', 'Staat', 'Kommune', 'Privatkunde', 'Freiberufler'
straße	Adresse	VARCHAR(255)
plz	Postleitzahl	VARCHAR(10)
land	Land	VARCHAR(20), Auswahl: 'Österreich', 'Schweiz', 'Deutschland', 'USA', 'Italien', 'Frankreich'
		
Tabelle: rating		
Feldname	Beschreibung	Datenbankeigenschaft
gpid	GeschäftspartnerID	INTEGER, FOREIGN KEY REFERENCES GP_Info(gpid)
rating_id	Rating-Wert	INTEGER CHECK (rating_id BETWEEN 0 AND 24)
		
Tabelle: ratingdef		
Feldname	Beschreibung	Datenbankeigenschaft
rating_id	Rating-Wert	INTEGER PRIMARY KEY CHECK (rating_id BETWEEN 0 AND 24)
pd	Ausfallwahrscheinlichkeit (PD)	DECIMAL(5, 4)
		
Tabelle: rahmen		
Feldname	Beschreibung	Datenbankeigenschaft
isdaid	ID des Rahmenvertrages	SERIAL PRIMARY KEY
is_besichert	Besichert	Auswahl: Ja, Nein
daily_margin	Täglicher Marktausgleich	Auswahl: Ja, Nein
		
Tabelle: sicherheit		
Feldname	Beschreibung	Datenbankeigenschaft
gpid	GeschäftspartnerID	INTEGER, FOREIGN KEY REFERENCES GP_Info(gpid)
marktwert	Marktwert der Sicherheit in Euro	DECIMAL(15, 2)
typ	Sicherheitstyp	VARCHAR(10), Auswahl: 'ISDA', 'Hypothek', 'andere'
		
Tabelle: fxcurr		
Feldname	Beschreibung	Datenbankeigenschaft
FX	Währung (ISO-4217-Code)	CHAR(3) PRIMARY KEY
Kurs	Wechselkurs (1 Euro in Währung FX)	DECIMAL

Beachte: Ratings von 0 bis 20 sind Pass-Loan (Leistungsfähige Kredite), Rating 21 ist Special Mention (Überwachungsfall), Rating 22 Substandard, Rating 23 ist  
Doubtful und Rating 24 Loss. Rating 21 bis 24 sind Risikovorsorgefälle. Bei Anfragen zum erwarteten Ausfall schließe die Risikovorsorgefälle aus. 
Verwende ausschließlich Funktionen, die in MySQL 
erlaubt sind. Du kannst notwendige Felder im SQL-Code in Timestamp oder andere Formate umwandeln. Notwendige zusätzliche Informationen kannst du selbstständig ergänzen. Bitte keine Warnungen oder Verbesserungsvorschläge. Bei unklaren Anweisungen darfst du nachfragen; ansonsten gib bitte ausschließlich den SQL-Code mit passenden SQL-Kommentaren aus. Insbesondere bei Anfragen zu Positionen, Abteilungen und Bereichen sowie personalbezogenen Daten prüfe genau, inwiefern die Anfrage richtig und vollständig abgedeckt wird. Achte besonders auf Zeitangaben und interpretiere sie richtig (z.B. das Jahr 2025 geht vom '2025-01-01' bis '2025-12-31'). Gib bitte ausschließlich lauffähigen SQL-Code aus, der direkt ausgeführt werden kann. Angaben wie "heute", "bis jetzt" etc. kannst du selbst interpretieren. Zahlen bitte immer auf zwei Nachkommastellen runden. WICHTIG: Runde alle Ergebnisse der SQL-Abfrage mit mehr als 2 Nachkommastellen auf 2 Ziffern. Wird keine Jahreszahl angegeben, verwende das aktuelle Jahr.
SEHR WICHTIG: Bitte vermeide reserviertes Schlüsselwort in MySQL in der Abfrage zu verwenden (z.B. alter). Der SQL-Code muss als Ganzes ausführbar sein. Vermeide daher (SET etc.). Bitte vermeide UNBEDINGT Kommentare, die nicht im SQL laufen. Bitte analysiere die Frage, die Dir gestellt wird sorgfältig. Insbesondere Zeitangaben müssen sorgfältig verarbeitet werden. Überprüfe den Code nochmal, ob die Frage damit beantwortet wird, bevor Du ihn ausgibst. Insbesondere bei Angaben wie "nächster Monat", "nächster Tag", "heuer" etc. übersetze zunächst in Datumsangaben, bevor du den SQL-Code generierst. Achte auf Sammelbegriffe wie Zinsderivate, FX-Derivate und interpretiere selbst, welche Produkte gemeint sein könnten. Bei Nomnalanfragen benutze nominalR und rechne gegebenfalls in Euro um. Bei Abfragen über verschiedene Tabellen (z.B. kredit, derivate) finde gemeinsame Spaltennamen und zeige die Geschäfte als getrennte Datensätze. Beachte zudem: "Im WHERE-Abschnitt hast du d.mid IS NULL verwendet, was allerdings in Kombination mit einem LEFT JOIN nicht immer korrekt funktioniert". Bei Beträgen nutze ROUND(SUM(), 2). 
SEHR WICHTIG: Stelle sicher, dass jede Spalte in der SELECT-Anweisung entweder aggregiert wird oder in der GROUP BY-Klausel steht.
SEHR WICHTIG: Falls Kommentare unbedingt nötig sind, diese bitte mit "--" SQL-ausführbar machen!!