Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Frage zu Schleifen in psql

  1. #1
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    219

    Frage zu Schleifen in psql

    Hallo,
    ich spiel gerade ein bisschen in psql mit PostgreSQL Datenbanken rum um ein wenig vetraaut zu werden mit SQL und relationalen Datenbanken.
    Ich habe jetzt versucht einfache schleifen zu bauen.

    LOOP
    select datum from where datum='2010-09-08'
    END LOOP;

    Wenn ich sowas in unter psql eintippe, dann kriege ich leider einen Syntaxfehler?

    Liegt das daran, dass man schleifen nicht einfach so in psql eintippen kann oder ist das was anderes?

    Gruß Swizz

  2. #2
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    04.10.2001
    Ort
    potsdam
    Beiträge
    881
    Zitat Zitat von swizz Beitrag anzeigen
    LOOP
    select datum from where datum='2010-09-08'
    END LOOP;
    Was soll das bewirken?

    Zitat Zitat von swizz Beitrag anzeigen
    select datum from where datum='2010-09-08';
    Das liefert das Feld "datum" für alle Zeilen die dem abgefragten Datum entsprechen...
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  3. #3
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    219
    Zitat Zitat von swizz Beitrag anzeigen
    LOOP
    select datum from daten where datum='2010-09-08'
    END LOOP;
    War ein kleiner Fehler drin. Das soll eigentlich gar nichts großartig sinnvolles bewirken.

    Meiner Meinung nach müsste das eine Endlosschleife ergeben die immer Weiter alle Einträge der Datenbank "daten" mit dem Datum '2010-09-08' anzeigt. Ist natürlich total sinnfrei.

    Mir ging es eher drum generell mal eine Schleife hinzubekommen, um die Syntax für Schleifen in SQL zu checken.

  4. #4
    Registrierter Benutzer Avatar von elrond
    Registriert seit
    04.10.2001
    Ort
    potsdam
    Beiträge
    881
    Hmm, ich arbeite seit vielen jahren mit SQL-Datenbanken und benötige idR keine Schleifen, die der SQL-Server bearbeitet. So etwas funktioniert auch mE. nicht in der normalen SQL-Abfrage sondern wird ausgelsgert; entweder in externe Programme (php etc.) oder in stored procedures am SQL-Server.

    Die SQL Abfrage liefert immer 'nur' eine bestimmte Datenmenge zurück. Durch die richtige Formulierung der Frage erhält man dann geanu die benötigten Daten...
    "Um die Welt zu ruinieren, genügt es, wenn jeder seine Pflicht tut." (Winston Churchill)

  5. #5
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    219
    ok verstehe, dann werde ich mich mal weiter schlau machen.

  6. #6
    Registrierter Benutzer
    Registriert seit
    12.11.2008
    Beiträge
    219
    Hallo,

    ich habe jetzt noch mal ein Problem in dieser Richtung bekommen.
    Ich habe eine Datenbank, die so aussieht.
    In der dritten soll der Wert jeweils um 0,1 kleiner sein, als der Wert des vorherigen Tages. Leider ist da irgendwas schief gegangen. Hatt jemand eine Idee, wie ich diese Spalte nochmal komplett neu schreiben kann.
    Ich müsste irgendwie die Formel

    Wert = 94,6 - 0,1 * (Datum der Spalte - 2010-12-05 in Tagen)

    auf die komplette Spalte anwenden. Ich habe aber keine Ahnung, wie ich das anwenden kann.

    Code:
     2010-12-05 |    92.9 |    94.600 |        24.0 |          
     2010-12-06 |    93.5 |    94.500 |        24.2 |          
     2010-12-07 |    92.7 |    94.500 |        23.8 |          
     2010-12-08 |    93.2 |    94.400 |        24.6 |          
     2010-12-09 |    93.2 |    94.300 |        23.9 |          
     2010-12-10 |    93.1 |    94.300 |        24.8 |          
     2010-12-11 |    93.2 |    94.200 |        24.9 |          
     2010-12-12 |    92.4 |    94.100 |        24.9 |          
     2010-12-13 |    93.5 |    94.000 |        24.9 |

Lesezeichen

Berechtigungen

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