Veld aanmaken die de waarde uit andere kolom haalt

  • Onderwerp starter Onderwerp starter lab4
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

lab4

Gebruiker
Lid geworden
14 okt 2004
Berichten
207
Hallo,

Ik heb een probleem. Ik wil in een tabel in SQL (MSSQL) een kolom maken die de waarde uit een andere kolom haalt en daar een berekening maakt die een getal omzet naar een tijd.

De waarde staat in het veld TIJD, bijvoorbeeld: 50349. Deze moet gedeelt worden door 3600. Uitkomst is dan 13.98583... De uren staan nu goed (13), vervolgens moet de ,98583... waarde gedeeld worden door 100 en vermenigvuldigd met 60. Dit geeft dan de minuten goed weer (0.59) deze 2 moeten vervolgens aan elkaar geplakt worden zodat de waarde 13:59 ontstaat.

Kan iemand helpen? Mogelijk met een SQL statement of ActiveX VB of JScript?
 
dit zou via een trigger kunnen.
of de onderstaande code 100% goed is kan ik niet zeggen,
maar de bedoeling is dat de trigger op de tabel waarin de velden staan, alleen afgaat als het veld testnummer_veld wordt gewijzigd.
En daarbij mag alleen het testnummer_veld aangepast worden.
als het een trigger af zou gaan als geeft niet welk veld gewijzigd wordt, dan triggert de update in de trigger de trigger opnieuw, en dan zit je in een oneindige lus.
Dat moet je vermijden.

de tabel inserted in de trigger is geen echte tabel, dit is een virtuele tabel die de trigger zelf maakt, en hierin staan de nieuwe waarden die de trigger in de tabel weg wilt schrijven.

Code:
CREATE TRIGGER bereken_tijd
ON test_tabel
 FOR  INSERT , UPDATE 
AS
IF UPDATE ( testnummer_veld )
BEGIN

  update test_tabel 
     set testtijd_veld = select convert(varchar(8),dateadd(s,testnummer_veld ,0),108) from inserted
   where pimary_veld = select primary_veld from inserted  
	
END
 
Dank je wel voor reactie Roland :thumb:

Ik ga mij verder verdiepen in de werking van Triggers!

Cheers!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan