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


Problem med NULL-värden

Postades av 2005-06-27 15:44:16 - Johannes Jonsson, i forum access, Tråden har 3 Kommentarer och lästs av 819 personer

Hej!
Jag sliter med en SELECT-sats i Access 2003 som summerar en kolumn med tal, men jag vill att vissa av posterna skall subtraheras från summan. Exempel:

Tabellen:
----------------------------------
Nyckel Param1 Värde
----------------------------------
1 a 24
2 b 35
3 b 18

Önskat resultat med select-satsen:
----------------------------------------------
Param1 Term1 Term2 Diff
----------------------------------------------
a 24 NULL 24
b 35 18 17


Jag har nu följande sql-sats:

SELECT Param1,
(SELECT SUM(Värde) FROM Siffertest AS s2 WHERE s1.Param1 = s2.Param1 AND NOT Nyckel = 3) AS Term1,
(SELECT SUM(Värde) FROM Siffertest AS s2 WHERE s1.Param1 = s2.Param1 AND Nyckel = 3) AS Term2,
(SELECT SUM(Värde) FROM Siffertest AS s2 WHERE s1.Param1 = s2.Param1 AND NOT Nyckel = 3) -
(SELECT SUM(Värde) FROM Siffertest AS s2 WHERE s1.Param1 = s2.Param1 AND Nyckel = 3) AS Diff
FROM Siffertest AS s1
GROUP BY Param1


Resultatet av detta är att de subqueries som inte hittar några poster att summera returnerar NULL, vilket gör att differensen också blir NULL. Det vill säga, för den post där Param1 = 'a' blir differensen (24 - NULL = NULL). Jag vill att de posterna skall behålla sitt originalvärde istället, alltså (24 - 0 = 24).
Hur kan jag göra det?
Några tips?

MVH
Johannes Jonsson


Svara

Sv: Problem med NULL-värden

Postades av 2005-06-27 21:03:06 - Mattias Olgerfelt

Använd SUM och GROUP BY

alltså:
select param1, sum([värde])
from tabellen
group by param1;


Å en annan sak, ändra column-namnen, ä i tabellen är inte så bra...

/M


Svara

Sv:Problem med NULL-värden

Postades av 2005-06-28 10:07:41 - Johannes Jonsson

Exakt hur skiljer sig det från det jag skrev?
Jag lyckades iallafall lösa detta med UNION. Dessvärre går inte UNION att använda i subqueries, så jag fick skapa en vy (eller fråga heter det väl i access) enligt följande:

SELECT Param1, SUM(Värde) AS Summa
FROM Siffertest
WHERE NOT Nyckel = 3
GROUP BY Param1
UNION
SELECT Param1, -SUM(Värde) AS Summa
FROM Siffertest
WHERE Nyckel = 3
GROUP BY Param1;

vilket gav följande resultattabell:

Param1 Summa
a 24
b -18
b 35

och då kunde jag köra ytterligare en fråga på den vyn, som helt enkelt summerade efter Param1 vilket gav resultatet:

Param1 Summa
a 24
b 17

Vilket var vad jag var ute efter. Dock känns lösningen lite otymplig, så om nån har nån mer koncis lösning är den välkommen!

Angående namnet 'värde' så var det rent illustrativt för exemplet, jag använder inte icke-engelska tecken på kolumner m m normalt, även om access ju tyvärr tillåter det...

/Johannes


Svara

Sv: Problem med NULL-värden

Postades av 2005-06-28 22:14:15 - Andreas Hillqvist

Du kan ju testa:
<code>
SELECT Param1, SUM(Värde * (Nyckel = 3)) AS Summa
FROM Siffertest
WHERE Nyckel = 3
GROUP BY Param1;
</code>

Uttrycket (Nyckel = 3) ger ju värdet 0 om den är falsk och -1 om den är san.


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 770
27 960
271 761
490
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