30. september 2008 - 13:56
Der er
3 kommentarer og
1 løsning
Hjælp med tabel
Jeg skal lave et view, der giver mig flg. resultat;
Var1, RefPeriode, DK, Udland
DK001, 01-08-2008, 700, 17
DK002, 01-08-2008, 800, 16
DK003, 01-08-2008, 900, 15
DK001, 01-07-2008, 699, 27
DK002, 01-07-2008, 799, 26
....
Pt ser tabellen således ud;
Var1, RefPeriode1, Type, Vaerdi
DK001, 01-08-2008, 1, 700
DK001, 01-08-2008, 2, 17
DK002, 01-08-2008, 1, 800
DK002, 01-08-2008, 2, 16
DK003, 01-08-2008, 1, 900
DK003, 01-08-2008, 2, 15
DK001, 01-07-2008, 1, 699
DK001, 01-07-2008, 2, 27
....
Her kan "Type" antage værdien 1 og 2, hvor 1 er DK og 2 er Udland. Altså skal to ens datoer slåes sammen på samme "Var1", og "type", "Vaerdi" skal laves til to andre variable "DK" og "Udland".
Håber det gav lidt mening :)
30. september 2008 - 14:29
#1
select var1, refperiode1, (select vaerdi from tabel1 y where x.var1=y.var1 and x.refperiode1 = y.refperiode1 and type = 1) DK, (select vaerdi from tabel1 y where x.var1=y.var1 and x.refperiode1 = y.refperiode1 and type = 2) UDL
from tabel 1 x
med forbehold for stavefejl...
03. oktober 2008 - 13:03
#3
Nu har jeg godt nok afgivet dig point for din fine indsats, men jeg tænkte på om du lige kunne hjælpe mig med en sidste ting. Koden ser således ud nu;
SELECT var1, refperiode,
(SELECT vaerdi
FROM tabel y
WHERE x.var1 = y.var1
AND x.refperiode = y.refperiode
AND type_sek = '1.0.0') dk,
(SELECT vaerdi
FROM tabel y
WHERE x.var1 = y.var1
AND x.refperiode = y.refperiode
AND type_sek = '2.0.0') udl
FROM tabel x
WHERE refperiode > TO_DATE ('01/07/2008', 'dd/mm/yyyy')
AND var1 BETWEEN 'DK002' AND 'DK005'
GROUP BY var1, refperiode
Det jeg tænkte på, var om det var muligt at gruppere hele resultatet til en "linie" a la:
Var1, RefPeriode, DK, Udland
DK002-DK005, 01-08-2008, sum(dk), sum(udland)
Med sum(dk)=30 og sum(udland)=14 mener jeg slf. at ved grupperingen skal det være totalen (se nedenfor).
Det hele i stedet for resultatet:
Var1, RefPeriode, DK, Udland
DK002, 01-08-2008, 3, 1
DK003, 01-08-2008, 5, 4
DK004, 01-08-2008, 19, 6
DK005, 01-08-2008, 3, 3