/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Løbende summeringskolonne
Fra : news.tele.dk


Dato : 02-07-04 14:26

Hej

Når man laver en SELECT vil jeg gerne kunne lave en summation for de
allerede gennemløbne rækker.

Dvs.

belob | sum
-------|------
200 | 200
1500 | 1700
3250 | 4950
150 | 5100

men jeg ønsker ikke at lagre sum-kolonnen, men regne den "realtime" for
hver SELECT, da den jo vil afhænge af sorteringsrækkefølgen!



Med venlig hilsen

Preben Holm

 
 
Peter Brodersen (02-07-2004)
Kommentar
Fra : Peter Brodersen


Dato : 02-07-04 15:20

On Fri, 02 Jul 2004 15:25:33 +0200, "news.tele.dk"
<64bitNOSPAM@mailme.dk> wrote:

>Når man laver en SELECT vil jeg gerne kunne lave en summation for de
>allerede gennemløbne rækker.

Du nævner ikke hvilken SQL-server, du arbejder under.

MySQL-løsning, brug af variabel:

SET @sum = 0;
SELECT beloeb, @sum := beloeb + @sum FROM tabel;

--
- Peter Brodersen

Ugens sprogtip: én (og ikke een)

Preben (04-07-2004)
Kommentar
Fra : Preben


Dato : 04-07-04 22:29

>>Når man laver en SELECT vil jeg gerne kunne lave en summation for de
>>allerede gennemløbne rækker.
>
>
> Du nævner ikke hvilken SQL-server, du arbejder under.
>
> MySQL-løsning, brug af variabel:
>
> SET @sum = 0;
> SELECT beloeb, @sum := beloeb + @sum FROM tabel;

Det er en PostgreSQL database - jeg prøver at lære skidtet, men det
ville nu også være meget rart med MySQL-løsning, så takker

Men andre, der har gode ideer er velkomne!

Peter Brodersen (05-07-2004)
Kommentar
Fra : Peter Brodersen


Dato : 05-07-04 00:31

On Sun, 04 Jul 2004 23:28:52 +0200, Preben <64bitNOnoNOSPAM@mailme.dk>
wrote:

>Det er en PostgreSQL database - jeg prøver at lære skidtet, men det
>ville nu også være meget rart med MySQL-løsning, så takker
>
>Men andre, der har gode ideer er velkomne!

Har postgresql ikke variable? Princippet kan vel sagtens stadigvæk
bruges.

--
- Peter Brodersen

Ugens sprogtip: én (og ikke een)

Troels Arvin (05-07-2004)
Kommentar
Fra : Troels Arvin


Dato : 05-07-04 08:47

On Mon, 05 Jul 2004 01:30:39 +0200, Peter Brodersen wrote:

> Har postgresql ikke variable?

Jo, men ikke iblandet 'alm.' SQL; i PostgreSQL skal den slags gøres i en
stored procedure.

Preben: Hvis jeg var dig, ville jeg - om muligt - ordne den løbende total
som del af data-præsentationen, dvs. i det sprog, hvorfra du kalder
databasesystemet.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Preben (06-07-2004)
Kommentar
Fra : Preben


Dato : 06-07-04 11:01

Hej

>>Har postgresql ikke variable?
>
>
> Jo, men ikke iblandet 'alm.' SQL; i PostgreSQL skal den slags gøres i en
> stored procedure.

Det de kalder Triggers - right?


> Preben: Hvis jeg var dig, ville jeg - om muligt - ordne den løbende total
> som del af data-præsentationen, dvs. i det sprog, hvorfra du kalder
> databasesystemet.

Ja, okay - det kunne jeg måske også!
Men regner med at jeg nok kommer til at bruge en del stored procedures,
når jeg kommer så langt med at lære lidt om dem også!


Mvh / Preben Holm

Troels Arvin (06-07-2004)
Kommentar
Fra : Troels Arvin


Dato : 06-07-04 13:01

On Tue, 06 Jul 2004 12:00:52 +0200, Preben wrote:

>> i PostgreSQL skal den slags gøres i
>> en stored procedure.
>
> Det de kalder Triggers - right?

Nej. Men en trigger kan kalde en stored procedure.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Kasper Katzmann (02-07-2004)
Kommentar
Fra : Kasper Katzmann


Dato : 02-07-04 15:41

....og så var det jo at news.tele.dk sagde:
> Når man laver en SELECT vil jeg gerne kunne lave en summation for de
> allerede gennemløbne rækker.


MSSQL:

SELECT SUM(belob) as total FROM tabel

--
Med venlig hilsen
Kasper Katzmann
http://www.katzmann.dk



Peter Brodersen (02-07-2004)
Kommentar
Fra : Peter Brodersen


Dato : 02-07-04 17:44

On Fri, 2 Jul 2004 16:40:52 +0200, "Kasper Katzmann"
<kasper@bmwkatzmann.dk> wrote:

>MSSQL:
>
>SELECT SUM(belob) as total FROM tabel

Det giver nu kun den samlede sum, og ikke de løbende
"mellemregninger".

--
- Peter Brodersen

Ugens sprogtip: én (og ikke een)

Kasper Katzmann (02-07-2004)
Kommentar
Fra : Kasper Katzmann


Dato : 02-07-04 18:23

....og så var det jo at Peter Brodersen sagde:
>> SELECT SUM(belob) as total FROM tabel
>
> Det giver nu kun den samlede sum, og ikke de løbende
> "mellemregninger".

Er det ikke også det Preben spørger om?
Citat:
>>> Når man laver en SELECT vil jeg gerne kunne lave en summation for de
>>> allerede gennemløbne rækker.

Men det kan sagtens være jeg misforstår det
Jeg er nemlig ikke helt med på hvad han mener med:

>>> men jeg ønsker ikke at lagre sum-kolonnen, men regne den "realtime" for
>>> hver SELECT, da den jo vil afhænge af sorteringsrækkefølgen!

....da jeg ikke kan se hvordan sorteringsrækkefølgen skal kunne ændre på
summen.

--
Med venlig hilsen
Kasper Katzmann
http://www.katzmann.dk



Peter Brodersen (02-07-2004)
Kommentar
Fra : Peter Brodersen


Dato : 02-07-04 19:22

On Fri, 2 Jul 2004 19:23:26 +0200, "Kasper Katzmann"
<kasper@bmwkatzmann.dk> wrote:

>>>> Når man laver en SELECT vil jeg gerne kunne lave en summation for de
>>>> allerede gennemløbne rækker.

Såvidt, jeg ser, er det den løbende summering, i hvert fald at dømme
på det resultat på forespørgslen, han gerne vil opnå:

>belob | sum
>-------|------
> 200 | 200
> 1500 | 1700
> 3250 | 4950
> 150 | 5100

... og hvor sum ikke er et felt i databasen, men beregnet som en del af
forespørgslen.

>>>> men jeg ønsker ikke at lagre sum-kolonnen, men regne den "realtime" for
>>>> hver SELECT, da den jo vil afhænge af sorteringsrækkefølgen!
>
>...da jeg ikke kan se hvordan sorteringsrækkefølgen skal kunne ændre på
>summen.

Det ændrer selvfølgelig ikke på sum for den endelige row, men det
ændrer på sum-feltet undervejs.

--
- Peter Brodersen

Ugens sprogtip: én (og ikke een)

Kasper Katzmann (02-07-2004)
Kommentar
Fra : Kasper Katzmann


Dato : 02-07-04 19:34

....og så var det jo at Peter Brodersen sagde:
> On Fri, 2 Jul 2004 19:23:26 +0200, "Kasper Katzmann"
> <kasper@bmwkatzmann.dk> wrote:
>
>>>>> Når man laver en SELECT vil jeg gerne kunne lave en summation for
>>>>> de allerede gennemløbne rækker.
>
> Såvidt, jeg ser, er det den løbende summering, i hvert fald at dømme
> på det resultat på forespørgslen, han gerne vil opnå:

Ahhh, du har ret... D'oh!!
Havde ikke lige set at kolonnen sum bare var et eksempel på det han ville
have ud.


--
Med venlig hilsen
Kasper Katzmann
http://www.katzmann.dk



Kristian Damm Jensen (05-07-2004)
Kommentar
Fra : Kristian Damm Jensen


Dato : 05-07-04 07:13

"news.tele.dk" <64bitNOSPAM@mailme.dk> wrote in message news:<40e55395$0$242$edfadb0f@dread16.news.tele.dk>...
> Hej
>
> Når man laver en SELECT vil jeg gerne kunne lave en summation for de
> allerede gennemløbne rækker.
>
> Dvs.
>
> belob | sum
> -------|------
> 200 | 200
> 1500 | 1700
> 3250 | 4950
> 150 | 5100
>
> men jeg ønsker ikke at lagre sum-kolonnen, men regne den "realtime" for
> hver SELECT, da den jo vil afhænge af sorteringsrækkefølgen!

Idet jeg antager, at hvert beloeb er identificeret (entydigt) ved et
id:

select t1.beloeb, sum(t2.beloeb)
from tabel t1, tabel t2
where t2.id <= t1.id

Bemærk dog, at dette kan tage ubehageligt lang tid, hvis der er mange
rækker i tabellen.

VH
Kristian

Søg
Reklame
Statistik
Spørgsmål : 177472
Tips : 31964
Nyheder : 719565
Indlæg : 6408312
Brugere : 218882

Månedens bedste
Årets bedste
Sidste års bedste