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


Summera med SQL-satsen [LÖST]

Postades av 2002-07-28 12:05:07 - Peter Holm, i forum asp - allmänt, Tråden har 7 Kommentarer och lästs av 595 personer

Jag har problem med att sortera ut och summera värden ur en Accessdatabas. Jag samanställer resultat samt poäng från ett antal olika hockeymatcher i en Accesstabell. Nu vill jag sortera ut summan av poängkolumnerna för respektive lag och presentera det som en vanlig serietabell. På http://peterholm.nu/slask/tabell.gif finns en dump på hur jag menar.

<%
strSQL="SELECT SUM(PointsHome + PointsAway) AS Poang FROM Games ORDER BY Poang"
%>
summerar totalpoängen för alla lag, men jag vill sortera ut poängen för varje lag och presentera det som en vanlig serietabell.
Jag kan ju använda:
<%
SQL1="SELECT SUM(PointsHome + PointsAway) AS Poang FROM Games WHERE TeamHome='Lag1' OR TeamAway='Lag1'"
%>
för att sortera ut poängen för lag1 o.s.v. men det blir ju en d-vla massa SQL-satser för 12 lag… Dessutom vill jag göra samma sak för målskillnad m.m.

Någon som har några tips på om det finns någon enklare metod?



Svara

Sv: Summera med SQL-satsen

Postades av 2002-07-28 12:59:09 - Johan Djupmarker

Eftersom jag inte orkade göra en testdatabas skrev jag lite direkt från huvudet :) Om det inte fungerar får du hojta till så ska jag testa lite nogrannare... Hoppas att detta ska fungera.

SELECT Team, Sum(Points) FROM (SELECT TeamHome AS Team, PointsHome AS Ponits FROM tabell UNION SELECT TeamAway AS Team, PointsAway AS Ponits FROM tabell) GROUP BY Team

/Johan


Svara

Sv: Summera med SQL-satsen

Postades av 2002-07-28 14:36:02 - Peter Holm

Ska testa lite när solen gått ner. Tack så länge!


Svara

Sv: Summera med SQL-satsen

Postades av 2002-07-28 17:43:02 - Peter Holm

Kunde inte hålla mig så jag smet in och testade ditt förslag ;-)

På några ställen står det "ponits". Jag antar att det är "points" som menas.

hur som helst, SQL-satsen accepteras men när jag fösöker loopa ut lag och poäng får jag "Objektet kunde inte hittas i mängden med det begärda namnet eller numret."

Om jag bara loopar ut lagen med Response.Write objRS("Team") så grupperas lagen ut helt OK men lägger jag till Response.Write objRS("Points") så får jag felmeddelandet ovan. Är jag ute och seglar, eller?

Så här ser satsen ut nu:
strSQL="SELECT Team, Sum(Points) FROM (SELECT TeamHome AS Team, PointsHome AS Points FROM Games UNION SELECT TeamAway AS Team, PointsAway AS Points FROM Games) GROUP BY Team"

Tillägg: Var kan man läsa mer GROUP BY, UNION SELECT m.m.? Det verkar mycket användbart att kunna mer om alla dessa varianter...


Svara

Sv: Summera med SQL-satsen

Postades av 2002-07-28 18:22:18 - Andreas Hillqvist

Lägg till As Points i SQL-satsen så funkar det:

strSQL="SELECT Team, Sum(Points) As Points FROM (SELECT TeamHome AS Team, PointsHome AS Points FROM Games UNION SELECT TeamAway AS Team, PointsAway AS Points FROM Games) GROUP BY Team"


Svara

Sv: Summera med SQL-satsen

Postades av 2002-07-28 19:49:10 - Peter Holm

Nu fick jag felmeddelandet: "Cirkelreferens orsakad av aliaset 'Points' i frågans SELECT-instruktion." Antar att det beror på att objektetet heter 'Points' på flera ställen. När jag döper om första objektet till 'Pointstot' och skriver ut Response.Write objRS("Pointstot") i stället så funkar det perfekt. Stort tack för hjälpen!

Hela satsen blev alltså:
strSQL="SELECT Team, Sum(Points) As Pointstot FROM (SELECT TeamHome AS Team, PointsHome AS Points FROM Games UNION SELECT TeamAway AS Team, PointsAway AS Points FROM Games) GROUP BY Team"


Nu ska jag bara dissekera hela satsen och fatta hur den funkar. Vad GROUP BY betyder kan jag väl ana men vad betyder UNION SELECT?

Och, hur kan jag sortera efter 'Pointstot'? Att lägga till ORDER BY Pointstot sist i satsen gav "För få parametrar angavs. 1 förväntades." Ska klura lite mer på det senare men om någon har en idé är den välkommen.

Tack än en gång!


Svara

Sv: Summera med SQL-satsen

Postades av 2002-07-28 20:54:52 - Lars Berg

Lägg till

order by 2 desc

för sorteringen. ( 2 betyder andra kolumnen i select-listan.)

union innebär att man slår ihop resultatet av två select-frågor och tar bort alla duplikat. Du bör egentligen använda UNION ALL eftersom den inte tar bort duplikat. Med din nuvarande fråga så blir det fel om ett lag har lika många poäng borta som hemma.


Svara

Sv: Summera med SQL-satsen [LÖST]

Postades av 2002-07-28 22:22:24 - Peter Holm

Stort tack, funkade på första kicken! Mitt tillägg kvarstår dock om det är någon som har bra tips på sajter eller literatur som beskriver detta med SQL-strängar och alla dess varianter på ett enkelt och bra sätt.


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 825
27 960
271 761
2 973
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