Jag förstår inte vad du menar.
Du kan ju lägga till beräkningar direkt i din select
select Intakt-Kostnad as Resultat
from ogrish
------------------
essentitia preter non sans multiplicandum
Databaser & SQLur Databashanterare & SQL
6 svar · 343 visningar · startad av clarkbones
Tjena, jag vill ha ett beräknat fält (Typ Intäkt-Kostnad=Resultat) i min tabell. Jag vet att man skapa det med transact-SQL, men kan man inte göra det manuellt? Det är rätt många fält i tabellen som är i princip klar och jag vill inte behöva koda det.
Jag förstår inte vad du menar.
Du kan ju lägga till beräkningar direkt i din select
select Intakt-Kostnad as Resultat
from ogrish
------------------
essentitia preter non sans multiplicandum
Jo det är klart. Men databasen som jag skapar skall sedan användas som källa för att tankas till en OLAP-kub och snubben där tyckte att det vore enkelt om datat kom fint och färdigt, utan att hann behövde trixa ihjäl sig med SQL-satsen. Den är ganska många fält som skall beräknas och det är inte bara så enkelt som Intäkt-Kostnad=Resultat. Jag har gott om utrymme för db:n. OK att det strider mot någon Codds lagar, men måste man göra det i transact-SQL?
Ok, jo lite SQL blir det. Typ
alter table ogrish add resultat int
update ogrsih set resultat = intakt - kostnad
------------------
essentitia preter non sans multiplicandum
Om du sen vill att kolumnen resultat förändras om du ändrar/lägger till intakt och kostnad så får du skapa en trigger som hanterar det.
------------------
essentitia preter non sans multiplicandum
Hej! Jag behövde inte en trigger för att det beräknade värdet skulle ändras när jag körde en UPDATE. Det beräknade fältet ändrades automatiskt.
Nej, det var inte så jag menade. Update tar ju hand om de poster som finns. Jag tänkte bara om du lägger till nya poster efter det att du har gjort update och vill att resultat beräknas även för dessa poster utan att du behöver göra något i den applikation som lägger till data, i så fall behöver du en trigger.
------------------
essentitia preter non sans multiplicandum