Archief - Veld toevoegen gelijk aan het verschil van 2 andere

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

KoenDK

Legacy Member
via welk sql statement doe ik dit aub? ik moet een veld3 toevoegen:
veld3 = (veld2/veld1)*20

dit moet dan altijd en overal waar zijn, de waarden veranderen dagelijks, om niet te zeggen, om het uur...
heb me al rot gezocht, ik zit nu bij alter table alter column, ben ik op de goede weg?


ik moet dus een soort van excell formula geven aan een veld...
ps: ik gebruik SQLyog als client

Zir0h

Legacy Member
Waarom moet dat in uw DB komen? Veld 3 wordt afgeleid van 1 en 2, dus zit ge eigenlijk met dubbele gegevens.

Lord Kveldulv

Legacy Member
Redundant data wordt niet opgeslagen in de db tenzij bij denormalisatie blijkt dat het zo de database zou optimaliseren.

Wat jij vraagt kan niet. Moest dat een db zijn met honderdduizenden records en zou het te zwaar blijken om de berekening in een select te doen kan je overwegen om veld3 bij te plaatsen. Maar dan moet je bij elke wijziging van 1 en 2, 3 herberekenen. Kan je nu ook wel in eenzelfde update statement.
Ik zou het in de select doen. Iets in den aard van SELECT ((veld2/veld1)*20) AS veld3 FROM...

dJeez

Legacy Member
Het kan gedaan worden via een trigger (die je laat uitvoeren bij inserts en updates) op je tabel, maar dat is enkel aan te raden indien dat nodig is omwille van vb. performantieredenen.

Devil9L

Legacy Member
Hoe / wanneer heb je veld3 nodig..
als dit is bij het uitlezen via bepaalde software, kan je de software dan niet desgewenst aanpassen dat de formule daar gebruikt wordt!

of de sql aanpassen zoals hoger(SELECT ((veld2/veld1)*20) FROM) en die sql executen door het prgrm.

ik geloof er ook niet in om het in de DB te storen, ik ken niet zoveel mensen die rechtstreeks op de DB gaan queryen om te zien welke data aanwezig is. er is altijd wel een client/prgrm..
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan