26. september 2008 - 14:29Der er
10 kommentarer og 1 løsning
Tabel spørgsmål
Hej, jeg er helt ny i Oracle - sidder lige og fedter med et kald!
SELECT t1.var1, t1.var2, t1.date1, t1.date2 AS seneste_opdatering, t1.date3 AS foerste_opdatering FROM stamdata t1 WHERE t1.date1 >= TO_DATE ('6/18/2008', 'mm/dd/yyyy') AND t1.date3 >= TO_DATE ('6/18/2008', 'mm/dd/yyyy') AND t1.date2 = (SELECT MAX (t2.date) FROM stamdata t2) ORDER BY t1.var2 DESC
Problemer er hvordan jeg får oprettet min foerste_opdatering smartest muligt?
Har en masse variable, der bliver opdateret hver dag fra dagen de bliver oprettet. Her i blandt en dato-variabel indeholdende dato for opdatering.
Har brug for en udskrift der indeholder; distinct(Var1) og så den sidste af Var2, Var3 osv. Derudover skal jeg have den seneste dato Var1 er blevet opdateret og første gang Var1 blev opdateret.
SELECT var1,MIN(opdateret),MAX(opdateret) FROM tabel GROUP BY var1
vil give dig distincte var1 og første og sidste opdatering for den.
Hvis du med "sidste af var2, var3" mener dem det svarer til MAX(opdateret), så kan du:
SELECT * FROM tabel x,(SELECT var1,MIN(opdateret) AS minop,MAX(opdateret) AS maxop FROM tabel GROUP BY var1) y WHERE x.var1=y.var1 AND x.opdateret=y.maxop
Det var den nederste tak - dog er opslaget sindsygt langsomt :(
Men det var jo ikke hvad jeg spurgte om til at starte med :) - så tak for svaret :)
SELECT x.var1, x.var2, x.var3, y.minop, y.maxop, x.var4, x.var5, x.var6, x.var7 FROM tabel x, (SELECT var1, MIN (dato) AS minop, MAX (dato) AS maxop FROM tabel GROUP BY var1) y WHERE x.var1 = y.var1 AND x.dato = y.maxop AND x.dato >= TO_DATE ('7/7/2008', 'mm/dd/yyyy') AND x.var4 >= TO_DATE ('7/7/2008', 'mm/dd/yyyy') ORDER BY x.var4 DESC
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.