Avatar billede faithless Praktikant
10. april 2017 - 09:37 Der er 3 kommentarer og
1 løsning

NOT IN Subquery

Hej

Hvordan laver man NOT IN Subquery? Har prøvet både med NOT IN og <>, NOT IN returnere ikke noget og <> giver mig følgende fejl "Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression."

Select a.SubjectNo, ai.Telephone1, ai.Telephone2
From PD.v_CrmAccount a
LEFT JOIN pd.v_CrmAccountInfo ai
ON a.AccountId = ai.AccountId
Where a.StatusCode = 'Aktiv'
AND a.AccountId NOT IN (Select p.AccountId
                    From pd.v_CrmPayment p
                    Where p.Amount > 0
                    AND p.PaymentDate >= '2012-04-01'
                    AND p.DonationType IN ('Støtte erhverv m. moms', 'Støtte erhverv u. moms')
                    Group By p.AccountId)
Avatar billede acore Ekspert
10. april 2017 - 11:13 #1
Nu er dine tabelnavne ikke helt selvforklarende og du har ikke beskrevet hvad du vil opnå, men hvis det er de, der ikke har betalt, du leder efter, er det måske en LEFT JOIN med IS null.

Se fx https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/
Avatar billede terry Ekspert
10. april 2017 - 11:37 #2
Avatar billede jensriis Novice
10. april 2017 - 13:37 #3
Du kunne også bruge exists operator - noget ala

Select a.SubjectNo, ai.Telephone1, ai.Telephone2
From PD.v_CrmAccount a
LEFT JOIN pd.v_CrmAccountInfo ai
ON a.AccountId = ai.AccountId
Where a.StatusCode = 'Aktiv'
AND NOT exists (Select p.AccountId
                    From pd.v_CrmPayment p
                    Where p.AccountId = a.AccountId
            AND    p.Amount > 0
                    AND p.PaymentDate >= '2012-04-01'
                    AND p.DonationType IN ('Støtte erhverv m. moms', 'Støtte erhverv u. moms')
                    )
Avatar billede arne_v Ekspert
10. april 2017 - 18:38 #4
Umiddelbart ser den NOT IN tilforladelig ud. Skulle den returnere data?
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