Jag har en tabell med 50 kolumner som jag vill summera. Hur gör man det på smidigaste sätt? Måste jag skriva varje rad för sig och summera eller kan man summera flera kolumner i ett svep?
------------------
Jag vill inte ha någon signatur.
5 svar · 448 visningar · startad av NETwork
Jag har en tabell med 50 kolumner som jag vill summera. Hur gör man det på smidigaste sätt? Måste jag skriva varje rad för sig och summera eller kan man summera flera kolumner i ett svep?
------------------
Jag vill inte ha någon signatur.
Hur menar du
select c1 + c2 + c3
select sum(c1) as c1sum,
sum(c2) as c2sum,
sum(c3) as c3sum
select sum(c1) + sum(c2) + sum(c3) as totalsum
Det kanske är varianten i mitten som du är ute efter.
------------------
essentitia preter non sans multiplicandum
Jag har 50 kolumner i en tabell i databasen... v1, v2, v3, v4 osv. Alla innehåller ett siffervärde. Jag vill summera ihop varje rad för alla kolumner till en int som jag sedan kan skriva använda i en funktion. Tänkte om det finns något enklare sätt än att summera alla 50 kolumner var för sig... typ som i excel där man kan skriva sum(v1:v50) eller nåt liknande?
Eller man kanske inte alls ska summera i sql-satsen utan i det programmeringsspråk man använder?
[Redigerat av NETwork den 07 jun 2001]
Nej, du måste skriva ut alla kolumner
------------------
essentitia preter non sans multiplicandum
Okej, men hur ska jag skriva själva sql-satsen... det går inte så bra.
Jag ska alltså addera kolumnerna v1 till v50 och sedan uppdatera kolumnen Summa med det värdet.
SELECT sum(v1) + sum(v2) ... as Totalsum UPDATE Summa SET Summa = Totalsumma WHERE Namn = 'MinVariabel'
???
------------------
Jag vill inte ha någon signatur.
update summa set summa = (
SELECT sum(v1) + sum(v2) ... from summa
where namn = 'MinVariabel')
WHERE Namn = 'MinVariabel'
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 07 jun 2001]