SQl Statement Hilfe



  • Ich vermute mal, das From fehlt noch:

    Update tabelle2 set id = (Select id from tabelle1 Where tabelle1.old_id = tabelle2.id) from tabelle2, tabelle1 Where tabelle2.id = tabelle1.old_id;
    


  • Klappt leider auch nicht...

    Gleiche Stelle der Fehler.
    Ich habs dann mal so abgeändert, aber das brachte auch nichts.
    Wahrscheinlich läßt sich das Problem gar nicht mit einem Statement lösen....

    Update tabelle2 set id = (Select tabelle1.id from tabelle1, tabelle2  Where tabelle1.old_id = tabelle2.id) from tabelle2, tabelle1 Where tabelle2.id = tabelle1.old_id;
    


  • Doch, das müsste schon gehen...

    Beinahe das selbe habe ich auch:

    update [Values] set [value] = (select [value] from [ValueTemp] where [ValueTemp].[value-id]=[values].[id]) from [values],[ValueTemp] where [values].[id]=[valuetemp].[value-id]
    

    und das klappt ohne Probleme.

    Vielleicht probierst du mal die ganzen Bezeichner in eckige Klammern zu setzen [...], eventuell ist einer davon in SQL für irgend etwas reserviert?



  • Also die Bezeichner heissen in echt natürlich anders, die habe ich nur der einfachheit halber so genannt.



  • Hast du es mal mit den eckigen Klammern probiert? Ich war auch schon manchmal überrascht, welche Bezeichner er nicht akzeptieren will und habe mir daher angewöhnt, alles in Klammern zu setzen.



  • So jetzt poste ich hier mal das orginale Sattement, welches immer noch nicht geht:

    Update [beweg] set [inv_nr] = (Select [anl_stamm].[inv_nr] from [anl_stamm] Where [anl_stamm].[matchcode1] = [beweg].[inv_nr]) Where [beweg].[inv_nr] = [anl_stamm].[matchcode1];
    


  • Das from ausserhalb der Klemmer hast du schon probiert?

    Update [beweg] set [inv_nr] = (Select [anl_stamm].[inv_nr] from [anl_stamm] Where [anl_stamm].[matchcode1] = [beweg].[inv_nr]) from [beweg], [anl_stamm] Where [beweg].[inv_nr] = [anl_stamm].[matchcode1]
    


  • Jo hatte ich auch schon.

    Langsam geb ichs auf, aber trotzdem danke für deine Hilfe



  • Ja, dann weiß ich leider auch nicht mehr weiter 😕



  • Das hat mir jetzt keine Ruhe gelassen, daher hab ich mal die zwei Tabellen in meine Datenbank mit eingefügt:

    Tabelle anl_stamm
            Feld matchcode1
            Feld inv_nr
    
    Tabelle beweg
            Feld inv_nr
    

    Folgendes Statement:

    Update [beweg] set [inv_nr] = (Select [anl_stamm].[inv_nr] from [anl_stamm] Where [anl_stamm].[matchcode1] = [beweg].[inv_nr]) from [beweg],[anl_stamm] Where [beweg].[inv_nr] = [anl_stamm].[matchcode1]
    

    arbeitet ohne Probleme (passiert nur nichts, weil die Tabellen leer sind). Es gibt keinen Fehler irgendeiner Art.
    Datenbank: MS SQL-Server 2000.


Anmelden zum Antworten