14. januar 2015 - 10:41Der er
4 kommentarer og 1 løsning
Case When problem
Jeg har en tabel ved navn AftaleYdelser. Felter: ContractNo = aftalenr No = nr. på ydelsen (hvis der er 20 ydelser, vil No være fra 1-20 Payment = ydelsen i kr. Collected = kan indeholde værdien 0 eller 1. 0 = ydelsen er ikke faktureret til kunden 1 = ydelsen er faktureret til kunden
Det jeg skal finde er: Ud for hver ContractNo skal jeg have en ydelse ud fra følgende IF sætning: Find den første ydelse hvor Collected = 0, hvis denne giver NULL så skal den finde højeste No hvor Collected = 1
Jeg håber jeg har forklaret problemet skarpt nok. Som skrevet i overskrift har jeg forsøgt mig med Case When uden held. Ved heller ikke om det er den rette løsning. Mangler der oplysninger eller det er skrevet fuldstændig uklart forsøger jeg gerne igen :)
Der kræves flere ressourcer for at imødegå cybertruslerne. Det fremgår af en undersøgelse blandt 225 IT-chefer i Sverige, Norge og Danmark.
3. december 2024
Slettet bruger
14. januar 2015 - 12:52#1
select coalesce( (select top(1) Payment from tabel where ContractNo = t1.ContractNo and Collected = 0 order by No ) , (select top(1) Payment from tabel where ContractNo = t1.ContractNo and Collected = 1 order by No desc )) Ydelse from (select distinct ContractNo from tabel ) t1
Tak for svar. Umiddelbart når jeg ser sql-sætningen så giver den 2 felter med Payment.
Det jeg har behov for er kun en payment pr. aftalenr.
Ud for hver ContractNo skal jeg have éen ydelse ud fra følgende IF sætning: Find den første ydelse hvor Collected = 0, hvis denne ikke findes så den giver NULL så skal den finde højeste No hvor Collected = 1. Ud fra denne IF sætning vil jeg kun en ydelse som enten er faktureret eller ej faktureret til kunden.
Giver det mening?
Synes godt om
Slettet bruger
14. januar 2015 - 13:32#3
Nej, du får kun ét felt. COALESCE tager første værdi hvis den ikke er NULL eller anden værdi. Men der mangler select af ContractNo i første select.
Tusind tak for hjælpen. Så funker det hele...det fantastisk.
Synes godt om
Ny brugerNybegynder
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.