Piotr
Warda
informatyk-ekonomist
a
Temat: MS SQL
Witam,Szukam rozwiązania, które pozwoli mi zaktualizować część rekordów w jednej tabeli na podstawie zapisów w innej tabeli.
Tabela A ma kilka pól: id, kod, nazwa, wartosc
1, 20, aa, 100.00
2, 21, bb, 45.0
3, 21, bb, 60.0
4, 22, aa, 100.00
Tabela B ma identyczne pola, ale numeracja w polu id różni się od numeracji w polu id z tabeli A.
6, 20, aa, 100.0
7, 21, bb, 78.0
8, 21, bb, 45.0
9, 22, aa, 100.00
W każdej tabeli unikalne są wartości pól id. W polu kod wartości mogą się powtarzać, podobnie jak w polu nazwa.
Potrzebuję zrobić tak:
z tabeli A dla określonego zakresu pola kod pobrać dane w z pól nazwa i wartość i dla tego samego pola kod, w tej samej kolejności pól nazwa zaktualizować wartość.
czyli np.:
z rekordu: 2, 21, bb, 45.0
przenieść wartość pola wartosc do rekordu 7, 21, bb, 78.0
itd.
Zwykłe update nie załatwi sprawy, gdyż nie ma stałego przesunięcia numeracji rekordów między jedną tabelą a drugą tabelą. Próbowałem to zrobić korzystając z kursorów, ale nie można zadeklarować kursora ze zmienną we frazie where.
Dodatkowo nie wchodzi w rachubę korzystanie zmiana nazwy tabeli B czy jej czyszczenie - może tylko nastąpić aktualizacja wartości.
Pozdrawiam.
Piotrek