none
UPDATE inner JOIN-Problem RRS feed

  • Frage

  • Hallo Forum,
    ich stehe auf dem Schlauch:

    update #myTab
    set start=convert(smalldatetime, '2011-03-03 12:00:00')
    from #myTab as j1 inner join #myTab as j2
    on j1.sample_id=j2.sample_id
    and j1.dbname=j2.dbname
    and convert(smalldatetime, j1.start)=convert(smalldatetime, j2.start)
    where j1.iid < j2.iid
    ich bekomme die Fehlermeldung:

    Msg 8154, Level 16, State 1, Line 1
    The table '#myTab' is ambiguous

    hm, warum?
    Vielen  Dank für Eure Hilfe

    Purclot


    Dienstag, 3. April 2012 09:11

Antworten

  • Hallo Purclot,

    Wenn Du (sinniger weise) in der FROM Klausel einen Tabellenalias vergibst, musst Du in der UPDATE Klausel auf den referenzieren => UPDATE j1:

    update j1
    set start=convert(smalldatetime, '2011-03-03 12:00:00')
    from #myTab as j1 
         inner join #myTab as j2
         on j1.sample_id=j2.sample_id
            and j1.dbname=j2.dbname
            and convert(smalldatetime, j1.start)=convert(smalldatetime, j2.start)
    where j1.iid < j2.iid
    Durch das Alias gibt es in der Anweisung keine Tabelle #myTab mehr, sondern nur j1 und j2.

    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing


    • Bearbeitet Olaf HelperMVP Dienstag, 3. April 2012 09:20
    • Als Antwort markiert Purclot Dienstag, 3. April 2012 11:44
    Dienstag, 3. April 2012 09:19

Alle Antworten

  • Hallo Purclot,

    Wenn Du (sinniger weise) in der FROM Klausel einen Tabellenalias vergibst, musst Du in der UPDATE Klausel auf den referenzieren => UPDATE j1:

    update j1
    set start=convert(smalldatetime, '2011-03-03 12:00:00')
    from #myTab as j1 
         inner join #myTab as j2
         on j1.sample_id=j2.sample_id
            and j1.dbname=j2.dbname
            and convert(smalldatetime, j1.start)=convert(smalldatetime, j2.start)
    where j1.iid < j2.iid
    Durch das Alias gibt es in der Anweisung keine Tabelle #myTab mehr, sondern nur j1 und j2.

    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing


    • Bearbeitet Olaf HelperMVP Dienstag, 3. April 2012 09:20
    • Als Antwort markiert Purclot Dienstag, 3. April 2012 11:44
    Dienstag, 3. April 2012 09:19
  • Hallo Olaf,

    vielen Dank!
    Purclot

    Dienstag, 3. April 2012 11:44