Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Summa av 5högsta värden i ett RS

Postades av 2003-07-01 13:25:59 - Roger Trosell, i forum asp - allmänt, Tråden har 10 Kommentarer och lästs av 518 personer

OM jag öppnar ett RS och vill få summan av de 5 högsta talen av 6 tillgängliga tal och skriva ner den summan till en egen post hur gör man då ?

Eller finns det något annat bra sätt att lösa det
ex: select top 5 .. osv, ?
Inget problem att hämta de 5 högsta på det viset men kruxet är ju att skriva ner den i totalen ?

/R


Svara

Sv: Summa av 5 högsta värden i ett RS

Postades av 2003-07-01 13:47:33 - Göran Roseen

Ska det bli en post i samma tabell? Hur håller du då sen isär summorna från de riktiga värdena, summorna kommer ju alltid vara högre än ursprungsvärdena?

Jag lattjade lite med att få en snygg SQL-sats för detta, att selecta top 5 och sedan summera, men till sist tänkte jag "struktur"!
Man ska inte se ner på att använda temptabeller...

Vad sägs om vidstående (antar att summorna läggs i en egen tabell):

select top 5 * into #top_values from tblMinTabell order by colMinKolumn desc
insert into tblSummor (colSumma) values (select sum(colMinKolumn) from #top_values

/Göran


Svara

Sv: Summa av 5 högsta värden i ett RS

Postades av 2003-07-01 14:49:41 - Andreas Hillqvist

Temptabell är helt onödigt. En vy löser det effektivare.


Svara

Sv: Summa av 5högsta värden i ett RS

Postades av 2003-07-01 15:35:10 - Thomas Larsson

Hej!

Detta borde fixa det hela

SELECT sum (tal) FROM tabelnamn WHERE tal IN
(SELECT TOP 5 tal FROM tabelnamn ORDER BY tal DESC)



// Thomas


Svara

Sv: Summa av 5högsta värden i ett RS

Postades av 2003-07-01 15:43:30 - Simon Svensson

SELECT SUM(fldTal) FROM (SELECT TOP 5 fldTal FROM tblTabell ORDER BY fldTal DESC) ?


Svara

Sv: Summa av 5högsta värden i ett RS

Postades av 2003-07-01 23:42:12 - Roger Trosell

Tabellen ser ut som så här

Id,tal1,tal2,tal3,tal4,tal5,tal6,total

Om man vill att en sql sats ska köra igenom alla rader i tabellen oh summera de 5högsta talen till total kolumnen hur ska den då se ut?

Sorry om ja svamla lite nyss...

/R


Svara

Sv: Summa av 5högsta värden i ett RS

Postades av 2003-07-02 12:18:39 - Thomas Larsson

Okej, jag tror det bästa är att göra en SP. Skrev ihop en (ful lösning med den fungerar iallafall.

jag har döpt tabellen till tal i övrigt stämmer det med dina uppgifter

-- kod börjar här

CREATE proc dbo.summera

as

declare @tal1 int
declare @tal2 int
declare @tal3 int
declare @tal4 int
declare @tal5 int
declare @tal6 int
declare @id int
declare @min int
declare @total int
DECLARE @tablename sysname

DECLARE myCursor CURSOR FOR SELECT * FROM tal

OPEN myCursor
FETCH NEXT FROM myCursor INTO @id,@tal1,@tal2,@tal3,@tal4,@tal5,@tal6,@total

WHILE (@@FETCH_STATUS = 0)
BEGIN

select @min = @tal1
if @min>@tal2 begin select @min = @tal2 end
if @min>@tal3 begin select @min = @tal3 end
if @min>@tal4 begin select @min = @tal4 end
if @min>@tal5 begin select @min = @tal5 end
if @min>@tal6 begin select @min = @tal6 end

select @total = @tal1+@tal2+@tal3+@tal4+@tal5+@tal6-@min

update tal set total = @total where id = @id

FETCH NEXT FROM myCursor INTO @id,@tal1,@tal2,@tal3,@tal4,@tal5,@tal6,@total
END

CLOSE myCursor
DEALLOCATE myCursor
GO

-- Kod slutar här



Hoppas att detta löser dina problem


// Thomas


Svara

Sv: Summa av 5högsta värden i ett RS

Postades av 2003-07-02 14:33:14 - Andreas Hillqvist

Varför har du denna datastruktur? Kan du ändra datastrukturen? Vad använder du för databasmotor?


Svara

Sv: Summa av 5högsta värden i ett RS

Postades av 2003-07-02 15:58:09 - Christoffer Hedgate

Skum tabellstruktur måste jag hålla med Andreas om... Men här är iaf ett förslag som löser problemet. Jag vet inte om det är den snabbaste lösningen men det är ju iaf bättre än en cursor.

<code>
CREATE VIEW totals
AS
SELECT x.id, SUM(y.num) - MIN(y.num) total
FROM tal x
INNER JOIN (
SELECT id, tal1 AS num FROM tal
UNION ALL
SELECT id, tal2 AS num FROM tal
UNION ALL
SELECT id, tal3 AS num FROM tal
UNION ALL
SELECT id, tal4 AS num FROM tal
UNION ALL
SELECT id, tal5 AS num FROM tal
UNION ALL
SELECT id, tal6 AS num FROM tal
) y ON x.id = y.id
GROUP BY x.id


UPDATE tal SET total = (SELECT total FROM totals WHERE totals.id = tal.id)
</code>


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 798
27 960
271 761
2 440
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies