Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Ergebnis-Zeilen einer SELECT Abfrage in Array speichern und durchiterieren

  1. #1
    hafi ist offline Benutzer
    Registriert seit
    11.09.2007
    Beiträge
    49

    Standard Ergebnis-Zeilen einer SELECT Abfrage in Array speichern und durchiterieren

    Hallo,

    ich beschäftige mich noch nicht so lange mit PSQL. Allerdings bin ich momentan dabei, eine Funktion(PL/pgSQL) zu schreiben die für eine Datenaufbereitung in einem Datawarehouse benötigt werden. Es geht um Artikeldaten(Kalkulationsblätter) die aus einem Kopf und einem Tabellenteil bestehen (in jeweils einer Tabelle). Jeder Artikel kann aus unterartikeln bestehen (beliebig viele). Für diese Unterartikel müssen Stufen vergeben werden.
    OK, soviel zur Ausgangssituation.

    Was ich wissen möchte, ist eigentlich fürs Erste nur: wie kann ich das Ergebnis einer SELECT-Abfrage in ein Array speichern (also die Zeilen) um diese dann Zeile für Zeile durch zu iterieren und weiter zu verarbeiten ?

    danke schonmal,
    hafi
    Geändert von hafi (11.09.2007 um 10:20 Uhr)

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von hafi Beitrag anzeigen
    Hallo,

    ich beschäftige mich noch nicht so lange mit PSQL. Allerdings bin ich momentan dabei, eine Funktion(PL/pgSQL) zu schreiben ...

    Was ich wissen möchte, ist eigentlich fürs Erste nur: wie kann ich das Ergebnis einer SELECT-Abfrage in ein Array speichern (also die Zeilen) um diese dann Zeile für Zeile durch zu iterieren und weiter zu verarbeiten ?

    danke schonmal,
    hafi
    PostgreSQL: Documentation: Manuals: PostgreSQL 8.1: Control Structures

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    hafi ist offline Benutzer
    Registriert seit
    11.09.2007
    Beiträge
    49

    Standard

    Danke. Damit wäre das erste Problem gelöst, stellt sich aber direkt das nächste.
    Die Inhalte werden also in der RECORD Variable gespeichert. Jetzt habe ich das Probelm, dass ich nicht weiss, wie viele Stufen eben ein Artikel hat, also auch nicht wie viele verschiedene RECORDs ich brauche, da das Programm sich, ja quasi immer wieder selbst aufrufen müsste.

    Zum Verständnis: Als Struktogramm müsste die Funktion in etwa so aussehen

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von hafi Beitrag anzeigen
    Danke. Damit wäre das erste Problem gelöst, stellt sich aber direkt das nächste.
    Die Inhalte werden also in der RECORD Variable gespeichert. Jetzt habe ich das Probelm, dass ich nicht weiss, wie viele Stufen eben ein Artikel hat, also auch nicht wie viele verschiedene RECORDs ich brauche, da das Programm sich, ja quasi immer wieder selbst aufrufen müsste.

    Zum Verständnis: Als Struktogramm müsste die Funktion in etwa so aussehen
    Nun, auch das sollte gehen...

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  5. #5
    hafi ist offline Benutzer
    Registriert seit
    11.09.2007
    Beiträge
    49

    Standard

    Die Frage ist nur das "wie". Wird nicht dann immer bei einem Verschachtelten Aufruf nach dem Wiederaufruf durch sich selbst die RECORD Variable wieder überschrieben?
    Noch ein Gedanke dazu:
    Wenn ich den Teil der sich wiederholt in eine eigene Funktion packe, kann ich ihn Problemlos immer wieder auch innerhalb von sich selbst(rekursion) aufrufen, oder?

    Mein Problem ist ganz einfach, dass ich vorher noch nicht wirklich in PL/pgSQL programmiert habe
    Geändert von hafi (11.09.2007 um 10:48 Uhr)

  6. #6
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von hafi Beitrag anzeigen
    Die Frage ist nur das "wie".
    http://www.pg-forum.de/sql/1503-rekursive-abfragen.html

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  7. #7
    hafi ist offline Benutzer
    Registriert seit
    11.09.2007
    Beiträge
    49

    Standard

    Merci! das hilft

  8. #8
    hafi ist offline Benutzer
    Registriert seit
    11.09.2007
    Beiträge
    49

    Standard

    Eine Frage noch dazu:
    Wie kann ich das Ergebnis einer SELECT-Abfrage prüfen, ob mehr als 0 Zeilen gefunden wurden?
    Konnte dazu auf die Schnell nichts finden..

  9. #9
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von hafi Beitrag anzeigen
    Eine Frage noch dazu:
    Wie kann ich das Ergebnis einer SELECT-Abfrage prüfen, ob mehr als 0 Zeilen gefunden wurden?
    Konnte dazu auf die Schnell nichts finden..
    Durchiterieren und zählen?

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  10. #10
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von akretschmer Beitrag anzeigen
    Durchiterieren und zählen?

    Andreas
    Alternativ: PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: Basic Statements

    Kurzzeitig war hier wohl ein Beitrag von Dir mit der Lösung eines zusätzlichen select count(*). Das ist suboptimal, weil sich die Tabelle zwischen den Aufrufen verändern könnte bzw. es ist *teuer* im Sinne von Laufzeit etc.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 21.06.2011, 13:08
  2. Antworten: 0
    Letzter Beitrag: 19.04.2011, 03:45
  3. Frage Ergebniss einer Abfrage in Variable speichern
    Von Friese1976 im Forum PostGIS
    Antworten: 5
    Letzter Beitrag: 18.02.2009, 16:31
  4. mehrere zeilen als ergebnis einer perlfunktion
    Von gnoerz im Forum Prozedurale Sprachen
    Antworten: 10
    Letzter Beitrag: 15.12.2008, 16:00
  5. Select abfrage mit bestem ergebnis??
    Von Henning im Forum SQL
    Antworten: 3
    Letzter Beitrag: 05.03.2008, 11:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum