Announcement

Collapse
No announcement yet.

Update Table

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Update Table

    Hallo,<P>
    ich habe hier ein Tabelle mit einigen Felder. Zwei dieser Felder sind immer gleich. (Es steht dier Gleiche Inhalt in den Feldern). Ich dem dritten Feld sind jedoch nur teilweise Werte. Nun wollte ich mittels einer Update tabel ein ubdate der restlichen Felder machen. Dazu habe ich benutzt<P>

    Update Tabelle1 T1
    Set T1.Feld1 =
    (Select T22.Feld1 From Tabelle1 T2
    where T1.IDFeld2 = T2.IDFeld2 and T1.Feld3 = T2.Feld3
    )
    Where T1.Feld1t is NULL

    Dieses geht nicht und ich bekomme ein Fehlermeldung

    <P>
    Multiple rows in Sigletun Select.
    <P>
    Dieses ist ja auch klar. Hier ein Ausschnitt aus der Tabelle<P>

    <p>
    Feld 1, Feld2, Feld3 <P>
    1 2 18<P>
    1 2<P>
    1 2<P>
    1 2<P>

    <P>
    Es soll nun einfach die 18 in die letzten beiden Zeiler übertragen werden.<P>

    Kann mir jemand bei dem SQl helfen <P>

    Tanja

  • #2
    Hallo Tanja,

    versuchs mal mit einem ...SELECT DISTINCT T22...

    Joche

    Comment


    • #3
      Nein geht nicht
      <P> Tanj

      Comment


      • #4
        Hallo nochmal Tanja,

        das weist dann wohl darauf hin, dass es verschiedene Datensätze in T2 gibt, die den Kriterien entsprechen, die aber unterschiedliche Werte in T2.Feld1 haben. Kann das sein? Welcher dieser Werte soll dann in Feld1 geschrieben werden? z.B könnte man den Select mit MAX oder MIN machen, oder FIRST, um die Rückgabe nur einen Wertes zu erzwingen.

        Grüße Joche

        Comment


        • #5
          Hallo Tanja,<br>
          ich würde hier eine stored procedure machen.
          <p>
          Etwa so:<br>
          <pre>
          Create procedure sp_setT3 as
          declare variable _PrimKey integer;
          declare variable _T1 integer;
          declare variable _T2 integer;
          declare variable _T3 integer;
          begin
          for select tabelle1.PrimKey, tabelle1.t1,tabelle1.t2,tabelle1.t3 from tabelle1
          into :_PrimKey, _T1, :_T2, :_T3 do
          begin
          if _T1= ... then
          begin
          Update Tabelle1 Set xx Where Tabelle1.PrimKey=:_PrimKey// was auch immer
          end;
          end;

          suspend;
          end;
          </pre>
          <p>
          Damit bist du flexibel, was dein Update betrifft.
          PrimKey=Primary Key der Tabelle.
          <p>
          Heik

          Comment


          • #6
            Hallo,

            wenn ich das richtig sehe, fehlt in deiner SELECT-Bedingung noch ein

            WHERE Feld1 is not null

            Das könnte eventuell reichen ?!

            Grüße

            Juli

            Comment

            Working...
            X