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


Knepig sql-sats!

Postades av 2003-06-02 13:50:40 - Kalle Strömberg, i forum sql-server/msde, Tråden har 7 Kommentarer och lästs av 894 personer

Jag har...

Tabell Faktura:
Fakid FakBelopp
1 100


Tabell Betalt:
Betid BetBetalt
1 10
1 10
1 40

Tabell Tillgodo:
Tilid TilTillgodo
1 20

Ta fram alla fakturor med < 0 (alltså dom med skuld)

Faktura 1 är på 100 kr
Betalt är 60 kr
Tillgodo är 20 kr
Summa: skuld på -20 kr...

Mycket tacksam för hjälp, men det sista vill sig inte, se min sql-sats nedan..

/Tack


Svara

Sv: Knepig sql-sats!

Postades av 2003-06-02 15:00:37 - Johan Djupmarker

Tagit från huvudet, säkerligen med fel...

SELECT Fakid, SUM(Belopp) AS Skuld
FROM (SELECT Faktid FaktBelopp FROM Faktura UNION ALL SELECT Betid, 0-BetBetalt FROM Betalt UNION ALL SELECT Tilid, 0-Tillgodo FROM Tillgodo)
GROUP BY Fakid
HAVING SUM(Belopp) < 0

/Johan


Svara

Sv: Knepig sql-sats!

Postades av 2003-06-02 15:13:32 - Kalle Strömberg

Såhär långt har jag kommit nu i min sql-sats...

SELECT Faktura.fakid, Faktura.Fakbelopp, SUM(Betalt.belopp) betalt, SUM(Tillgodo) utb
FROM NamnInfo inner join
(Faktura left join Betalt on Betalt.Betid = Faktura.Fakid)
on Medlem.Medlemsnr = Faktura.Medlemsnr
inner join medl_utbetalningsunderlag on medl_utbetalningsunderlag.Tilid = Faktura.Fakid
WHERE Ort = 1
GROUP BY Faktura.Fakid,Faktura.Fakbelopp
Having ((Sum(Betalt.belopp) + Sum(Tillgodo))- Sum(Faktura.Avibelopp)) < - 19

Det som blir fel är att om det inte finns ngt i tillgodo tabellen så hittar han inte fakturan..tips?


Svara

Sv: Knepig sql-sats!

Postades av 2003-06-02 16:35:56 - Johan Djupmarker

Testade du mitt förslag?

Om du ska göra på ditt vis borde du använda en left join mot tillgodotabellen också samt ta hänsyn till nullvärden i having-satsen tror jag. *gissar vilt*


SELECT Faktura.fakid, Faktura.Fakbelopp, SUM(Betalt.belopp) betalt, SUM(Tillgodo) utb
FROM NamnInfo inner join
(Faktura left join Betalt on Betalt.Betid = Faktura.Fakid)
on Medlem.Medlemsnr = Faktura.Medlemsnr
<b>left</b> join medl_utbetalningsunderlag on medl_utbetalningsunderlag.Tilid = Faktura.Fakid
WHERE Ort = 1
GROUP BY Faktura.Fakid,Faktura.Fakbelopp
Having ((<b>IsNull(Sum(Betalt.belopp),0)</b> + <b>IsNull(Sum(Tillgodo),0))</b>- Sum(Faktura.Avibelopp)) < - 19

Vad gör tabellerna NamnInfo och Medlem där...? Känns inte som att detta kan fungera?

/Johan


Svara

Sv: Knepig sql-sats!

Postades av 2003-06-02 16:50:30 - Andreas Hillqvist

Varför har du inte Betalt och Tillgodo i samma tabell. Det är ju en Tillgodo med negativt värde. Du kan ju ha en flaga eller en attribut om du vil skilja dem åt.


Svara

Sv: Knepig sql-sats!

Postades av 2003-06-02 17:25:40 - Christoffer Hedgate

Som redan påpekats så ser designen lite skum ut, och namngivningen på FOREIGN KEY-kolumnerna tycker jag är konstig, men om jag tolkat dig korrekt så bör denna fråga lösa problemet:

<code>
SELECT Fakid, SUM(FakBelopp - BetBetalt - TilTillgodo) AS Skuld
FROM Faktura
INNER JOIN (SELECT Betid, SUM(BetBetalt) AS BetBetalt FROM Betalt GROUP BY Betid) a ON Fakid = Betid
INNER JOIN (SELECT Tilid, SUM(TilTillgodo) AS TilTillgodo FROM Tillgodo GROUP BY Tilid) b ON Fakid = Tilid
GROUP BY Fakid
HAVING SUM(FakBelopp - BetBetalt - TilTillgodo) > 0
</code>


Svara

Sv: Knepig sql-sats!

Postades av 2003-06-03 09:03:09 - Kalle Strömberg

TACK JohanD..Det funkar lysande!


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 614
27 953
271 709
400
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