C_jorgen Juniormester
18. maj 2017 - 14:08 Der er 10 kommentarer og
1 løsning

Ønsker at udelade rækker hvor sum af kolonne med beløb er 0

Nedenstående forespørgsel virker fint. Men jeg kan ikke finde ud af at begrænse det til kun at medtage de rækker hvor kolonnen med summen (alias Lejsaldo) er forskellig fra 0.

select Sel,Afd,Lejemaal,Lejer,Navn,Adresse,Inddato,Fridato,isnull((select sum(belob) from lejtrans f where f.sel=lejer.sel and f.afd=lejer.afd and f.lejemaal=lejer.lejemaal and f.lejer=lejer.lejer),0) as Lejsaldo
from lejer inner join interessentadresse ia on ia.interessentnr = lejer.interessentnr where Tomgang='J'
and sel = 1 and afd not in (2,9,127)
GROUP BY Sel,Afd,Lejemaal,Lejer,Navn,Adresse,Inddato,Fridato
18. maj 2017 - 14:52 #1
...and f.lejemaal=lejer.lejemaal and f.lejer=lejer.lejer AND SUM(belob) > 0), 0)...

Måske
acore Professor
18. maj 2017 - 15:34 #2
Måske tilføje

... HAVING Lejsaldo <> 0

Ikke sikker på, om det duer i MSSQL, men i MySQL burde det være ok.
18. maj 2017 - 15:46 #3
HAVING er standard SQL, så det burde det.
acore Professor
18. maj 2017 - 15:51 #4
michael_stim: Hvor finder jeg gældende MSSQL dokumentation. Kender du et sted i lighed med mysql.com?
18. maj 2017 - 15:53 #5
#4
Har ikke siddet med MSSQL siden jeg läste til systemudvikler i 90'erne ;-) Men et eller andet sted på Microsofts sider må det vel findes.
18. maj 2017 - 15:56 #6
acore Professor
18. maj 2017 - 16:03 #7
Tak - det førte mig til https://docs.microsoft.com/en-us/sql/t-sql/queries/select-having-transact-sql.

Bliver egentlig lidt usikker på, om det går med Lejsaldo i en HAVING - de gør det modsatte i begge de to eksempler.

C_jorgen: Du bliver nødt til at prøve det
C_jorgen Juniormester
19. maj 2017 - 11:44 #8
Hej Michael og Acore. Jeres forslag havde jeg prøvet og mange andre forsøg desværre.

Michael: An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference

Acore: Invalid column ´Lejsaldo´
acore Professor
19. maj 2017 - 12:02 #9
Tænkte det nok. Hvis man skal følge terminologien i eksemplet, skal du så tilføje

... HAVING (isnull((select sum(belob) from lejtrans f where f.sel=lejer.sel and f.afd=lejer.afd and f.lejemaal=lejer.lejemaal and f.lejer=lejer.lejer),0) ) <> 0

Desværre kan jeg ikke teste, så jeg famler lidt
C_jorgen Juniormester
19. maj 2017 - 12:53 #10
Acore det ser ud til at virke. Så kan jeg arbejde videre med om den samlede forespørgsel er som jeg ønsker. Mange tak den har virkelig drillet det er en kæmpe hjælp.
acore Professor
19. maj 2017 - 13:34 #11
Det var godt - og lidt heldigt - jeg mener det var lidt et langskud fra min side ;)
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





CIO
Bliv klar til EU-persondataforordningen: Ministerium klar med længe ventet dansk vejledning til den nye EU-lov
Justitsministeriet er efter en måneds forsinkelse klar med den store vejledning til EU's kommende persondataforordning, der kommer til at få konsekvenser for alle danske virksomheder. Se vejledningen her.
Comon
Microsofts vilde - og hammerdyre - Surface Studio kommer til Danmark
Microsofts all-in-one-computer, Surface studio, kommer til Danmark midt i juni til en vild pris
Job & Karriere
Dansk it-firma masseansætter: Skal bruge 90 nye medarbejdere med disse it-profiler
It-virksomheden BEC skal bruge 90 nye it-medarbejdere. Her kan du se de konkrete it-profiler, BEC er på udkig efter.
White paper
SharePoint implementeringens syv dødssynder
I dette whitepaper kan du læse mere om SharePoint-implementeringens syv dødssynder og om, hvordan man får sin SharePoint-løsning til at blive en succes ved at tage hånd om disse problemstillinger.