tisdag 14 juni 2016

Kul med Transact SQL och Windowing funktioner

När jag tittade över min tjänstepension senast så funderade jag på hur mycket utdelningar har man fått sen starten på den. Tittade lite på vilket data man kunde få ut från Nordnet. Enkelt gick det ju att exportera all transaktionshistorik sen starten så sagt och gjort. Efter ett par försök så hade jag datat i en tabell i SQL servern.

Tabellen enligt nedan skapades via import/export wizarden, fick justera några datatyper bara.

CREATE TABLE [dbo].[transaktionsfil](
            [Id] [int] NOT NULL,
            [Bokföringsdag] [date] NULL,
            [Affärsdag] [date] NULL,
            [Likviddag] [date] NULL,
            [Transaktionstyp] [varchar](50) NULL,
            [Värdepapper] [nvarchar](50) NULL,
            [Instrumenttyp] [varchar](50) NULL,
            [ISIN] [varchar](50) NULL,
            [Antal] [int] NULL,
            [Kurs] [decimal](18, 2) NULL,
            [Ränta] [decimal](18, 2) NULL,
            [Avgifter] [decimal](18, 2) NULL,
            [Belopp] [decimal](18, 2) NULL,
            [Valuta] [varchar](50) NULL,
            [Inköpsvärde] [decimal](18, 2) NULL,
            [Resultat] [real] NULL,
            [Totalt antal] [real] NULL,
            [Saldo] [real] NULL,
            [Växlingskurs] [decimal](18, 2) NULL,
            [Transaktionstext] [varchar](50) NULL,
            [Makuleringsdatum] [varchar](max) NULL,
            [Verifikations- Notanummer] [int] NULL,
 CONSTRAINT [PK_transaktionsfil] PRIMARY KEY CLUSTERED
(
            [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

Alla kolumner jag önska fanns med i datat från Nordnet där jag har tjänstepensionen jag ville titta på. Transaktionstyp kolumnen innehåller ”UTDELNING” och det är ju den jag är intresserad av i detta fall. Med queryn nedan få jag precis det jag önskar.

SELECT bokföringsdag, Transaktionstyp, Värdepapper, Instrumenttyp, Antal, Kurs, Belopp
,SUM(Belopp) OVER (ORDER BY bokföringsdag ASC ROWS UNBOUNDED PRECEDING) AS Balans
FROM transaktionsfil
WHERE Transaktionstyp = 'UTDELNING'
ORDER BY Bokföringsdag

Var inte själv medveten om att det var så många utdelningar på tre år och att det totalt varit lite över sju tusen. Trevligt säger jag och tack Nordnet för smidig och bra lösning. Riktigt bra att har förmånen att kunna placera pengarna själv och slippa taskiga fonder och andra dyra produkter.

Bokföringsdag
Transaktionstyp
Värdepapper
Instrumenttyp
Antal
Kurs
Belopp
Balans
2013-07-02
UTDELNING
SDY
Aktie
10
0.42
27.79
27.79
2013-10-01
UTDELNING
SDY
Aktie
10
0.40
25.58
53.37
2013-10-01
UTDELNING
PKW
Aktie
15
0.07
6.29
59.66
2014-01-02
UTDELNING
PKW
Aktie
15
0.10
9.31
68.97
2014-01-02
UTDELNING
SDY
Aktie
10
1.19
77.38
146.35
2014-01-02
UTDELNING
SDY
Aktie
10
0.47
30.17
176.52
2014-01-02
UTDELNING
SDY
Aktie
10
0.03
2.24
178.76
……
….
..
..
…..
2016-05-13
UTDELNING
INDU C
Aktie
50
5.00
250.00
6306.50
2016-05-16
UTDELNING
BMW
Aktie
10
3.20
298.24
6604.74
2016-05-16
UTDELNING
INVE B
Aktie
35
10.00
350.00
6954.74
2016-05-30
UTDELNING
ZAL
Aktie
100
0.85
84.89
7039.63