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). WICHTIG: Stelle sicher, dass jede Spalte in der SELECT-Anweisung entweder aggregiert wird oder in der GROUP BY-Klausel steht.