code:
1
2
3
| update tabel1 set veld 1 = veld1 + 1 where tabel1.veld2 = tabel2.veld1 and tabel2.veld1 between datum1 and datum2; |
Ik wil de waarde van een bepaald veld op laten hogen op basis van de waarde van een veld uit een andere tabel met een relatie.
Bovenstaande code werkt echter niet..
Wat ik kan doen is natuurlijk eerst een tabel maken op basis van tabel2 waarbij ik meteen een waarde toevoeg en dan tabel 1 met het veld uit deze nieuwe tabel updaten.. Maar dat is me iets te omslachtig.
Als ik een view maak en de view probeer te updaten geeft Oracle aan: .ORA-01779: Kan een kolom die verwijst naar een niet sleutelhoudende tabel niet wijzigen.
Ik heb een PK toegevoegd maar hij blijft het zeggen...
Ik heb toen een FK toegevoegd omdat in de tabel 1 meerdere keren het item uit tabel2 voorkomt.. een een op veel relatie dus. hij moet voor elke keer dat hij het veld tegen komt dat tussen de twee datums ligt de waarde veranderen...
Heeft iemand een oplossing?
Sign of my Time