Avatar billede DonJones Nybegynder
05. december 2015 - 17:50 Der er 3 kommentarer

SQL - WHERE på CASE clause

Jeg har lavet en Query som vist nedenfor med udgangspunkt i Dynamics NAV. Den laver udtræk af åbne kreditorposter pr. given dato.

Jeg har brugt en CASE clause der beregner et restbeløb (= oprindeligt beløb fratrukket afregnet beløb). Den giver en masse linjer med 0, da gældsposterne er betalt, og dem vil jeg gerne afgrænse mig fra.

Har forsøgt at kopiere CASE sætningen ned under WHERE men får en fejl. Kan nogen hjælpe mig på rette vej?



SELECT    *,
    Case    WHEN V.[Closed at Date] <= '2015-11-30' THEN D.[Amount (LCY)]-V.[Closed by Amount (LCY)]
        WHEN V.[Closed at Date] > '2015-11-30' THEN D.[Amount (LCY)]
    END as Rest

FROM D JOIN V ON D.[Vendor Ledger Entry No_] = V.[Entry No_]

WHERE    D.[Vendor No_] = '5' and
        D.[Posting Date] between '2015-01-01' and '2015-11-30' and
        D.[Document Type] >= 2
Avatar billede arne_v Ekspert
05. december 2015 - 19:49 #1
Hvilken fejl besked faar du?
05. december 2015 - 20:53 #2
Du kan sagtens bruge case i where, den skal bare ikke have noget alias.

Håber dette virker, ellers skal vi nok have den fejlbesked...

SELECT    *,
    Case    WHEN V.[Closed at Date] <= '2015-11-30' THEN D.[Amount (LCY)]-V.[Closed by Amount (LCY)]
        WHEN V.[Closed at Date] > '2015-11-30' THEN D.[Amount (LCY)]
    END as Rest

FROM D JOIN V ON D.[Vendor Ledger Entry No_] = V.[Entry No_]

WHERE    D.[Vendor No_] = '5' and
        D.[Posting Date] between '2015-01-01' and '2015-11-30' and
        D.[Document Type] >= 2

AND    Case    WHEN V.[Closed at Date] <= '2015-11-30' THEN D.[Amount (LCY)]-V.[Closed by Amount (LCY)]
        WHEN V.[Closed at Date] > '2015-11-30' THEN D.[Amount (LCY)]
    END  > 0
Avatar billede Slettet bruger
07. december 2015 - 08:07 #3
post fejlbeskeden så ved  vi meget mere :)
Avatar billede 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. Der sættes "nofollow" på alle links.

Loading billede 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