15. august 2014 - 14:02Der er
5 kommentarer og 1 løsning
advanceret dataudtræk
Hej,
Jeg har een tabel:
Variabel | DateTime | Value VarA | 13-02-2013 21:19 | 28.19 VarA | 13-02-2013 21:20 | 28.19 VarA | 13-02-2013 21:21 | 28.19 VarB | 13-02-2013 21:19 | 8.19 VarB | 13-02-2013 21:20 | 38.19 VarB | 13-02-2013 21:21 | 68.17
Jeg vil gerne hente alle data ud hvor VarB er mindre end 60. Da varB er mindre end 60 kl. 13-02-2013 21:21 skal VarB ikke med og det skal VarA heller ikke... Resultatet bliver derfor:
Variabel | DateTime | Value VarA | 13-02-2013 21:19 | 28.19 VarA | 13-02-2013 21:20 | 28.19 VarB | 13-02-2013 21:19 | 8.19 VarB | 13-02-2013 21:20 | 38.19
Jeg kunne forestille mig at man skal klave det med en select statement bare på VarB som man så bagefter laver en inner join på med VarA hvor DateTimje bvruges som join parameter... Det kræver bare at DateTime er nøjagtig ens for at den join vil lykkdes...?
Variabel | DateTime | Value VarA | 13-02-2013 21:19 | 28.19 VarB | 13-02-2013 21:19 | 8.19 VarC | 13-02-2013 21:19 | 0.19
Synes godt om
Slettet bruger
18. august 2014 - 10:05#3
Der er mange løsning - en kunne være dette:
select * from Tabel where DateTime in (select DateTime from ( select DateTime ,sum(case when Value < 60 then 1 else 0 end) x from Tabel where Variabel = 'VarB' or Variabel = 'VarC' group by DateTime ) s1 where x >= 2 )
hmmm... men VarC skulle være større end 8 - hvor indgår det?
Synes godt om
Slettet bruger
18. august 2014 - 10:48#5
Ups! Det overså jeg- prøv dette:
select * from Tabel where DateTime in (select DateTime from ( select DateTime ,sum(case when Variabel = 'VarB' and Value < 60 then 1 else 0 end +case when Variabel = 'VarC' and Value < 8 then 1 else 0 end ) x from Tabel where Variabel in ('VarB','VarC') group by DateTime ) s1 where x >= 2 )
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.