Hannes
Benutzer
- Beiträge
- 12
Hallo zusammen, ich stehe mal wieder auf dem Schlauch. Dieses Mal soll ich anhand der Werte einer Tablle jeweils eine Abfrage durchlaufen lassen, um dananch eine Gesamttabelle zu erhalten
Ich hatte mir vorgestellt, das über einen Loop mit PL/pgSQL durchzuführen - Premiere für mich. So richtig will mir das Vorgehen nicht einleuchten. Das Prinzip habe ich schon verstanden, denke ich.
Leider exerzieren die meisten Tutorials das Ganze nur mit RAISE NOTICE durch, was mir bei meinem komplexeren Thema nicht gerade weiterhilft.
-----------------------------------------------------
A) Ausgangspunkt ist meine Tabelle1. Die Iteration sollte auf der id laufen. Im ersten Schritt wären die x, y-Werte gefragt. In einem 2. Schritt müsste ich auf die Spalte ks bezug nehmen.
Tabelle1
id | ks | x | y
---+----+---+--
1 | 26 |52 |13
2 | 11 |51 |12
3 | 8 |53 |11
Tabelle_neu (noch leer)
ks_neu | var1 | var2 | var3
-------+------+------+-----
| | |
B) Außerdem habe ich ein Abfrage mit einer Funktion Select * from x-y-funktion (x, y) (die Funktion selektiert über mehrere Tabellen Daten, was an dieser Stelle nicht so wichtig ist - es kommt eine einfache Tabelle dabei heraus)
---------------------------------------------------
Schritt 1:
Die Werte x, y aus Tabelle1 sollen im ersten Schritt in die Funktion x-y-funktion (x, y) übernommen werden und als Ergebnis sollen jeweils die mit der Funktion abgefragten Werte in die Tabelle_neu geschrieben werden.
Schritt 2:
In die Tabelle_neu müssten anschließend die NULL-Werte für ks_neu mit den jeweiligen ks-Werten aus der Tabelle1 ergänzt werden.
--------------------------------------------------
Ich hoffe ich konnte das hier nachvollziehbar skizzieren.
Kann mir jemand einen Hinweis geben, wie ich das sauber in einen Loop verpacke?
Ich hatte mir vorgestellt, das über einen Loop mit PL/pgSQL durchzuführen - Premiere für mich. So richtig will mir das Vorgehen nicht einleuchten. Das Prinzip habe ich schon verstanden, denke ich.
Leider exerzieren die meisten Tutorials das Ganze nur mit RAISE NOTICE durch, was mir bei meinem komplexeren Thema nicht gerade weiterhilft.
-----------------------------------------------------
A) Ausgangspunkt ist meine Tabelle1. Die Iteration sollte auf der id laufen. Im ersten Schritt wären die x, y-Werte gefragt. In einem 2. Schritt müsste ich auf die Spalte ks bezug nehmen.
Tabelle1
id | ks | x | y
---+----+---+--
1 | 26 |52 |13
2 | 11 |51 |12
3 | 8 |53 |11
Tabelle_neu (noch leer)
ks_neu | var1 | var2 | var3
-------+------+------+-----
| | |
B) Außerdem habe ich ein Abfrage mit einer Funktion Select * from x-y-funktion (x, y) (die Funktion selektiert über mehrere Tabellen Daten, was an dieser Stelle nicht so wichtig ist - es kommt eine einfache Tabelle dabei heraus)
---------------------------------------------------
Schritt 1:
Die Werte x, y aus Tabelle1 sollen im ersten Schritt in die Funktion x-y-funktion (x, y) übernommen werden und als Ergebnis sollen jeweils die mit der Funktion abgefragten Werte in die Tabelle_neu geschrieben werden.
SQL:
Insert into tabelle_neu (var1, var2, var3)
Select * from x-y-funktion (x, y)
Schritt 2:
In die Tabelle_neu müssten anschließend die NULL-Werte für ks_neu mit den jeweiligen ks-Werten aus der Tabelle1 ergänzt werden.
SQL:
update Tabelle_neu
set ks_neu = ks
where ks_neu isnull ;
Ich hoffe ich konnte das hier nachvollziehbar skizzieren.
Kann mir jemand einen Hinweis geben, wie ich das sauber in einen Loop verpacke?