-
02-12-2008, 15:23 #1Member
- Registered
- 19/09/05
- Posts
- 1,911
- iTrader
- 0
- Mentioned
- 0 Post(s)
Veld toevoegen gelijk aan het verschil van 2 andere
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 clientno votes
-
-
02-12-2008, 15:27 #2Member
- Registered
- 19/12/03
- Location
- Lebbeke
- Posts
- 1,909
- iTrader
- 48 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 1/5
Waarom moet dat in uw DB komen? Veld 3 wordt afgeleid van 1 en 2, dus zit ge eigenlijk met dubbele gegevens.
no votes
-
02-12-2008, 16:32 #3Member
- Registered
- 20/05/07
- Location
- Pays des Collines
- Posts
- 3,643
- iTrader
- 5 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/9
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...no votes
-
02-12-2008, 17:21 #4Shinigami
- Registered
- 13/08/02
- Location
- Woumen.w-vl.be
- Posts
- 5,731
- iTrader
- 2 (100%)
- Mentioned
- 7 Post(s)
- Reputation
- 3/179
no votes
-
02-12-2008, 20:31 #5Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
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.
PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
-
09-12-2008, 14:02 #6Member
- Registered
- 10/11/08
- Location
- Leuven
- Posts
- 115
- iTrader
- 0
- Mentioned
- 0 Post(s)
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..no votes

Shinigami Sieberkev
Your humble 9lives 