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 i SQL fråga.

Postades av 2003-01-21 11:01:12 - Marcus Brunzell, i forum asp - allmänt, Tråden har 19 Kommentarer och lästs av 725 personer

Hej!
Håller på att göra om upplägget på min poängliga. Har brutit ut alla ”poäng” och lagt dem i en egen tabell istället.
Problemet är att jag inte får till SQL frågan.
Jag vill att det summeras för varje id och inte hela kolumnen, har testa många varianter nu men ”han” köper inte mina lösningar…
Så här började jag:
<code>
"SELECT SUM(StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare_MalPass) AS Pass FROM StatistikSpelare WHERE StatistikSpelare_Datum >=#" & Year(date) & "-01-01# AND StatistikSpelare_Datum <=#" & Year(date) & "-12-31# "
</code>

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-01-21 11:25:18 - André Isaksson

<code>
SELECT SUM(StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare_MalPass) AS Pass FROM StatistikSpelare WHERE StatistikSpelare_Datum >=#" & Year(date) & "-01-01# AND StatistikSpelare_Datum <=#" & Year(date) & "-12-31# GROUP BY id
</code>


Svara

Sv: Summera i SQL fråga.

Postades av 2003-01-21 13:34:53 - Marcus Brunzell

Tack det funkar fint!

Men nu skulle jag behöva utveckla fråga lite.
Måste hämta in namn, efternamn och posistion från tabellen Spelare.
Sortera utskriften också.
Är osäker på hur jag skall få till det när SUM ligger med i början.

<code>
"SELECT SUM(StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare_MalPass) AS Pass FROM StatistikSpelare,Spelare " &_
" WHERE StatistikSpelare_Datum >=#" & Year(date) & "-01-01# AND StatistikSpelare_Datum <=#" & Year(date) & "-12-31# " &_
" AND StatistikSpelare_id=Spelare.IDSpelare " &_
" GROUP BY StatistikSpelare_id" &_
" ORDER BY Mal+Pass DESC, Spelare.EfterNamn ASC "
</code>

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-01-21 20:44:02 - Marcus Brunzell

Har kommit såhär... Denna kodsnutt blir det inge felmeddelande.

<code>
Addera = "SELECT SUM(StatistikSpelare.StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare.StatistikSpelare_MalPass) AS Pass FROM StatistikSpelare,Spelare " &_
" WHERE StatistikSpelare.StatistikSpelare_Datum >=#" & Year(date) & "-01-01# AND StatistikSpelare.StatistikSpelare_Datum <=#" & Year(date) & "-12-31# " &_
" AND StatistikSpelare.StatistikSpelare_SpelareId=Spelare.IDSpelare " &_
" GROUP BY StatistikSpelare.StatistikSpelare_id" &_
" "
</code>

Hur gör jag så att jag kommer åt fält ur tabellen Spelare. Hur skall det skrivas vid SELECT ? Testat med ,* osv... Men då får jag:
"Du försökte köra en fråga med en mängdfunktion som inte innehöll det.."

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-01-22 21:14:19 - Marcus Brunzell

Är det ömöligt att lösa eller måste jag testa någon annan lösning?

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-01-23 09:29:42 - André Isaksson

Det här kanske fungerar:
<code>SELECT SUM(StatistikSpelare.StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare.StatistikSpelare_MalPass) AS Pass, Spelare.Kolumn1, Spelare.Kolumn2 FROM StatistikSpelare,Spelare
WHERE StatistikSpelare.StatistikSpelare_Datum >=#" & Year(date) & "-01-01#" & AND StatistikSpelare.StatistikSpelare_Datum <=#" & Year(date) & "-12-31# " & AND StatistikSpelare.StatistikSpelare_SpelareId=Spelare.IDSpelare GROUP BY StatistikSpelare.StatistikSpelare_id, Spelare.Kolumn1, Spelare.Kolumn2
</code>


Svara

Sv: Summera i SQL fråga.

Postades av 2003-01-24 15:54:31 - Andreas Hillqvist

Har gjort ett lite exempel på hur man kan summera, sedan göra en join. Slippa gruppera alla fält så man måste gär i en fråga. Dessutom använder exemplet sparad fråger med parametrar. Vilket borde ge bättre prestanda.

Koden kanske är lite gröttig. Men hoppas den kan vara till hjälp:
Programarkivet:Avancerad summering i flera fråger i ASP


Svara

Sv: Summera i SQL fråga.

Postades av 2003-02-06 14:13:46 - Marcus Brunzell

Tack!
Skall kika in på den "gröttiga" koden!

En sista fråga bara...
Har lagt till en extra för poäng.
<code>Mal+Pass AS Poang</code>
Hur skriver man sen så listan sorteras efter Poang?
<code>ORDER BY </code>

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-02-06 15:57:23 - André Isaksson

<code>
SELECT Mal+Pass AS Poang FROM Tabell ORDER BY 1
</code>

Du får sortera efter det index kolumnen har i din fråga.


Svara

Sv: Summera i SQL fråga.

Postades av 2003-02-06 17:27:38 - Christoffer Hedgate

> Du får sortera efter det index kolumnen har i din fråga.

Nja, den funktionaliteten är 'deprecated' i SQL (dvs att det kommer att tas bort i en framtida version och man bör därför inte använda det). Det fungerar bra att använda det alias man gav den beräknade kolumnen, alternativt hela uttrycket.

<code>
SELECT Mal+Pass AS Poang FROM Tabell ORDER BY Poang
SELECT Mal+Pass AS Poang FROM Tabell ORDER BY Mal+Pass
</code>


Svara

Sv: Summera i SQL fråga.

Postades av 2003-02-06 18:08:22 - André Isaksson

Ok. Jag har nog använt Access för mycket. Har för mig att man måste ange index där.


Svara

Sv: Summera i SQL fråga.

Postades av 2003-02-06 19:05:17 - Marcus Brunzell

Så här blev allt...
<code>
Addera = "SELECT SUM(StatistikSpelare.StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare.StatistikSpelare_MalPass) AS Pass, Mal+Pass AS Poang, SUM(StatistikSpelare.StatistikSpelare_Narvaro) AS Narvaro,"&_
" Spelare.Efternamn,Spelare.Fornamn,Spelare.IDSpelare,Spelare.Position FROM StatistikSpelare,Spelare " &_
" WHERE StatistikSpelare.StatistikSpelare_Datum >=#" & Year(date) & "-01-01# AND StatistikSpelare.StatistikSpelare_Datum <=#" & Year(date) & "-12-31# " &_
" AND StatistikSpelare.StatistikSpelare_SpelareId=Spelare.IDSpelare " &_
" GROUP BY StatistikSpelare.StatistikSpelare_id, Spelare.Efternamn,Spelare.Fornamn,Spelare.Position,Spelare.IDSpelare" &_
" ORDER BY 3 DESC ,Spelare.Efternamn "
</code>

Om jag körde med
<code>
ORDER BY Poang
</code>
Så fick jag ett felmeddelande "För få parametrar angavs. 1 förväntades."

Tack igen!

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-03-26 18:45:35 - Marcus Brunzell

Lyfter denna tråd för ytterligare en fråga.

Hur skall det skrivas så att endast poster där Poäng är större än 0 visar

<code>Addera = "SELECT SUM(StatistikSpelare.StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare.StatistikSpelare_MalPass) AS Pass, Mal+Pass AS Poang, SUM(StatistikSpelare.StatistikSpelare_Narvaro) AS Narvaro,"&_
" Spelare.Efternamn,Spelare.Fornamn,Spelare.IDSpelare,Spelare.Position FROM StatistikSpelare,Spelare " &_
" WHERE StatistikSpelare.StatistikSpelare_Datum >=#" & Year(date) & "-01-01# AND StatistikSpelare.StatistikSpelare_Datum <=#" & Year(date) & "-12-31# " &_
" AND StatistikSpelare.StatistikSpelare_SpelareId=Spelare.IDSpelare " &_
" GROUP BY StatistikSpelare.StatistikSpelare_id, Spelare.Efternamn,Spelare.Fornamn,Spelare.Position,Spelare.IDSpelare" &_
" ORDER BY 3 DESC ,Spelare.Efternamn "</code>

Har testat i att lägga med "Poang >0" i Where delen men det funkar ju inte så!

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-03-26 19:29:25 - Christoffer Hedgate

Lägg till HAVING Mal+Pass > 0 mellan GROUP BY-delen och ORDER BY-delen.


Svara

Sv: Summera i SQL fråga.

Postades av 2003-03-26 20:14:27 - Marcus Brunzell

Får felmeddelandet...

[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.

Vad behöver jag lägga till något mer i den långa SQL satsen? Har testat olika tillägg i GROUP BY men det blir samma.

Mvh bruze


Svara

Sv: Summera i SQL fråga.

Postades av 2003-03-27 10:16:39 - Christoffer Hedgate

Hur ser din fråga ut nu då?


Svara

Sv: Summera i SQL fråga.

Postades av 2003-03-27 11:46:38 - Marcus Brunzell

Frågan ser ut så här om jag skriver ut den.

SELECT SUM(StatistikSpelare.StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare.StatistikSpelare_MalPass) AS Pass, Mal+Pass AS Poang, SUM(StatistikSpelare.StatistikSpelare_Narvaro) AS Narvaro, Spelare.Efternamn,Spelare.Fornamn,Spelare.IDSpelare,Spelare.Position FROM StatistikSpelare,Spelare WHERE StatistikSpelare.StatistikSpelare_Datum >=#2003-01-01# AND StatistikSpelare.StatistikSpelare_Datum <=#2003-12-31# AND StatistikSpelare.StatistikSpelare_SpelareId=Spelare.IDSpelare GROUP BY StatistikSpelare.StatistikSpelare_id, Spelare.Efternamn,Spelare.Fornamn,Spelare.Position,Spelare.IDSpelare ORDER BY 3 DESC ,Spelare.Efternamn

Hoppas det är så du menar med hur den ser ut...

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-03-27 14:51:24 - Christoffer Hedgate

Fungerar den frågan? Den ser nämligen ganska skum ut.


Svara

Sv: Summera i SQL fråga.

Postades av 2003-03-27 17:15:14 - Marcus Brunzell

Jo det funkar fint!
Vad är det som ser "fel" ut?

Jag kan ju lösa mitt bekymmer Poang > 0 genom en if sats i bland utskriften, men det vore kul om SQL satsen fixade allt.

Mvh Marcus


Svara

Sv: Summera i SQL fråga.

Postades av 2003-03-28 11:48:25 - Christoffer Hedgate

Det som ser skumt ut är MAL+Pass AS Poang i nedanstående:

SUM(StatistikSpelare.StatistikSpelare_Mal) AS Mal, SUM(StatistikSpelare.StatistikSpelare_MalPass) AS Pass, Mal+Pass AS Poang

Jag antar att det refererar till de föregående kolumnerna och att Access accepterar det, men så kan man egentligen inte skriva i SQL. Eftersom det fungerade där trodde jag att det även fungerade i HAVING, men det gjorde det visst ej. Prova denna SQL sats då:

<code>
SELECT SUM(StatistikSpelare.StatistikSpelare_Mal) AS Mal
, SUM(StatistikSpelare.StatistikSpelare_MalPass) AS Pass
, Mal+Pass AS Poang
, SUM(StatistikSpelare.StatistikSpelare_Narvaro) AS Narvaro
, Spelare.Efternamn
, Spelare.Fornamn
, Spelare.IDSpelare
, Spelare.Position
FROM StatistikSpelare, Spelare
WHERE StatistikSpelare.StatistikSpelare_Datum >=#2003-01-01#
AND StatistikSpelare.StatistikSpelare_Datum <=#2003-12-31#
AND StatistikSpelare.StatistikSpelare_SpelareId=Spelare.IDSpelare
GROUP BY StatistikSpelare.StatistikSpelare_id
, Spelare.Efternamn
, Spelare.Fornamn
, Spelare.Position
, Spelare.IDSpelare
HAVING SUM(StatistikSpelare.StatistikSpelare_Mal) + SUM(StatistikSpelare.StatistikSpelare_MalPass) > 0
ORDER BY 3 DESC, Spelare.Efternamn
</code>

Du borde även kunna ändra det här:

WHERE StatistikSpelare.StatistikSpelare_Datum >=#2003-01-01#
AND StatistikSpelare.StatistikSpelare_Datum <=#2003-12-31#

till det här:

WHERE StatistikSpelare.StatistikSpelare_Datum BETWEEN #2003-01-01# AND #2003-12-31#


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 808
27 960
271 761
579
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