Zitat Zitat von Pikachu Beitrag anzeigen
Sind die Anfragen an die KI schlanke Zweizeiler oder wie sehen die aus? Oder sind die geheim? Hat jemand Beispiele und rückt die raus?
Das ist ganz natürliche Sprache. Ich mache die Vorgaben in Deutsch.

Hier mal ein Beispiel. Ich wollte eine komplexe SQL Abfrage erstellen, und habe Bob benutzt. Ich kürze das hier mal ein bisschen. Insbesondere die Antworten von Bob.

[ICH]
Kannst du mir eine SQL Abfrage generieren? Es geht um folgendes: In der Tabelle
idmjob gibt es tausende Einträge. Das Feld für die Beschreibung ist jo_besch.
Ich möchte eine Menge von Testdaten aus diesen Einträgen heraussuchen. Dazu
möchte ich die Einträge nach jo_beschr gruppieren und dann aus jeder Gruppe
maximal 10 Einträge herausholen.


--------------------------------------------------------------------------------


[BOB]
Abfrage mit ROW_NUMBER() (DB2 for i, empfohlen):


SELECT *
FROM (
SELECT a.*,
ROW_NUMBER() OVER (
PARTITION BY jo_besch
ORDER BY
) AS rn
FROM idmjob a
)
WHERE rn <= 10
ORDER BY jo_besch,


Hinweis: durch den tatsächlichen Primärschlüsselnamen ersetzen.


--------------------------------------------------------------------------------


[ICH]
Der Primärkey heißt jo_rec_id


--------------------------------------------------------------------------------


[BOB]
Variante 2 – ROW_NUMBER() (empfohlen):


SELECT *
FROM (
SELECT a.*,
ROW_NUMBER() OVER (
PARTITION BY jo_besch
ORDER BY jo_rec_id
) AS rn
FROM idmjob a
)
WHERE rn <= 10
ORDER BY jo_besch, jo_rec_id


--------------------------------------------------------------------------------


[ICH]
Hier das funktionierende SQL:


SELECT *
FROM (
SELECT a.*,
ROW_NUMBER() OVER (
PARTITION BY jo_beschr
ORDER BY jo_rec_id
) AS rn
FROM idmjobpf a
)
WHERE rn <= 10
ORDER BY jo_beschr, jo_rec_id;


--------------------------------------------------------------------------------


[BOB]
Danke für die Korrektur! Die tatsächlichen Namen weichen leicht ab:
- jo_besch --> jo_beschr
- idmjob --> idmjobpf


--------------------------------------------------------------------------------


[ICH]
Es muss aber noch erweitert werden. Es sollen grundsätzlich nur Werte
berücksichtigt werden, die in einer Kind-Tabelle (IDMSERVI) den Wert "fill_doc"
im Feld se_servive haben. Die Verbindung von idmjobpf und idmservi geschieht
über die Felder jo_rec_id bzw. se_jo_rec.


--------------------------------------------------------------------------------


[BOB]
Erweiterte Abfrage mit EXISTS-Filter:


SELECT *
FROM (
SELECT a.*,
ROW_NUMBER() OVER (
PARTITION BY jo_beschr
ORDER BY jo_rec_id
) AS rn
FROM idmjobpf a
WHERE EXISTS (
SELECT 1
FROM idmservi s
WHERE s.se_jo_rec = a.jo_rec_id
AND s.se_servive = 'fill_doc'
)
)
WHERE rn <= 10
ORDER BY jo_beschr, jo_rec_id;


EXISTS statt JOIN, um Duplikate bei mehreren passenden IDMSERVI-Zeilen
pro Job zu vermeiden.


--------------------------------------------------------------------------------


[ICH]
Kannst du das so umbauen, dass ich die Daten der idmservi auch bekomme?


--------------------------------------------------------------------------------


[BOB]
(Rückfrage gestellt, aber vom Nutzer abgebrochen / noch offen)


==================



Das ist nur ein einfaches Beispiel. Man kommuniziert einfach in natürlicher Sprache. Es kann sein, dass Bob Nachfragen stellt. Kann auch sein, dass seine Antworten nicht ganz stimmen. Man kann in den Chat alles reingeben: Text (auch Code) oder Screenshots.

Bob "versteht" alles. (Ich bin mir nicht sicher, ob "versteht" das richtige Wort ist.)