23. november 2004 - 10:38
#11
//Hnteknik
Her er scriptet på databasen. Med alle data. Kjør det i query analyser
--LAGER TBLBILER
CREATE TABLE [tblBiler] (
[BID] [int] IDENTITY (1, 1) NOT NULL ,
[FKEier] [int] NOT NULL ,
[RegNr] [varchar] (7) NOT NULL ,
[FKFabrikat] [int] NOT NULL ,
[FKModell] [int] NOT NULL ,
[FKType] [int] NOT NULL ,
[ArsModell] [varchar] (4) NOT NULL ,
[Motorstorrelse] [varchar] (3) NOT NULL ,
[Listepris] [int] NOT NULL ,
[FKPremie] [int] NOT NULL ,
[PeriodePremie] [decimal](18, 0) NOT NULL ,
[FKBRAvdeling] [int] NOT NULL ,
[OpprettetDato] [datetime] NOT NULL ,
[FKRegAv] [int] NOT NULL ,
[GjelderFra] [datetime] NOT NULL ,
[Aktiv] [varchar] (3) NOT NULL ,
[SlettetAV] [int] NULL ,
[SlettetDato] [datetime] NULL ,
[SiOppForsikringFra] [datetime] NULL ,
[EndretAV] [int] NULL ,
[EndretDato] [datetime] NULL
) ON [PRIMARY]
GO
--LAGER TBLAVDELING
CREATE TABLE [tblAvdeling] (
[AID] [int] IDENTITY (1, 1) NOT NULL ,
[ANavn] [varchar] (50) NOT NULL ,
[AAktiv] [varchar] (3) NULL
) ON [PRIMARY]
GO
--LEGGER INN AVDELINGER
INSERT [tblAvdeling] ([ANavn], [AAktiv]) VALUES ('Avdeling A', 'JA')
INSERT [tblAvdeling] ([ANavn], [AAktiv]) VALUES ('Avdeling B', 'JA')
INSERT [tblAvdeling] ([ANavn], [AAktiv]) VALUES ('Avdeling C', 'JA')
INSERT [tblAvdeling] ([ANavn], [AAktiv]) VALUES ('Avdeling D', 'JA')
INSERT [tblAvdeling] ([ANavn], [AAktiv]) VALUES ('Avdeling E', 'JA')
GO
--LEGGER INN BILER I TBLBILER
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36221', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 1, '01.01.2003 19:57:55', 33, '01.01.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36222', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 1, '01.01.2004 19:57:55', 33, '02.05.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36223', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 1, '01.01.2004 19:57:55', 33, '03.05.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36224', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 1, '01.01.2004 19:57:55', 33, '04.04.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36225', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 1, '01.01.2004 19:57:55', 33, '05.05.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36226', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 1, '01.01.2004 19:57:55', 33, '06.06.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36227', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 1, '01.01.2004 19:57:55', 33, '07.07.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36228', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 1, '01.01.2004 19:57:55', 33, '08.08.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36229', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 2, '01.01.2004 19:57:55', 33, '09.09.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36210', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 3, '01.01.2004 19:57:55', 33, '10.10.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36211', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 4, '01.01.2004 19:57:55', 33, '11.11.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
INSERT [tblBiler] ([FKEier], [RegNr], [FKFabrikat], [FKModell], [FKType], [ArsModell], [Motorstorrelse], [Listepris], [FKPremie], [PeriodePremie], [FKBRAvdeling], [OpprettetDato], [FKRegAv], [GjelderFra], [Aktiv], [SlettetAV], [SlettetDato], [SiOppForsikringFra], [EndretAV], [EndretDato]) VALUES (27, 'RJ36212', 29, 284, 1, '2004', '2,0', 330000, 1, 1561, 5, '01.01.2004 19:57:55', 33, '12.12.2003 00:00:00', 'JA', NULL, NULL, NULL, NULL, NULL)
GO
--LAGER SP`EN
CREATE PROCEDURE sp_aktive_HKL
AS
if(object_id('tempdb.dbo.#temp')<>1)
drop table #temp
SET dateformat dmy
Declare @datoFOM datetime
Declare @datoTOM datetime
Set @datoFOM = '01.01.2003'
Set @datoTOM = '31.12.2003'
SELECT fkbravdeling, a.SiOppForsikringFra, b.dato as gjelderfra, a.Regnr
into #temp
FROM
tblbiler a
join
(select distinct cast('01' + datename(month, gjelderFra) + cast(year( gjelderFra) as varchar) as datetime) as dato from tblbiler) b
on b.dato between gjelderFra and coalesce(SiOppForsikringFra,'01.01.2050')
select * from
(
SELECT anavn,
sum(
case when month(SiOppForsikringFra) = month(GjelderFra) and year(SiOppForsikringFra) = year(GjelderFra)then
DateDiff(d, GjelderFra, SiOppForsikringFra)
else
DateDiff(d, GjelderFra,
dateadd(day, -0, '01' + datename(month, dateadd(month,1, gjelderFra)) + cast(year(dateadd(month,1, gjelderFra)) as varchar))
)
end
) as AntDays,
'Antall aktive denne mnd' as regnr, count(*) as AntCars,
year(GjelderFra) as [year], month(GjelderFra) as [month],
datename(month,gjelderFra) + ' ' + cast(year(gjelderFra) as varchar) as dato,
2 as [order]
FROM
#temp a join
tblAvdeling
on FKBRAvdeling=AID
-- Perioden spørringen skal kjøres på
WHERE gjelderfra between @datoFOM and @datoTOM
group by anavn, month(GjelderFra), year(GjelderFra), datename(month,gjelderFra) + ' ' + cast(year(gjelderFra) as varchar)
) a
union
(
SELECT anavn,
case when month(SiOppForsikringFra) = month(GjelderFra) and year(SiOppForsikringFra) = year(GjelderFra)then
DateDiff(d, GjelderFra, SiOppForsikringFra)
else
DateDiff(d, GjelderFra,
dateadd(day, -0, '01' + datename(month, dateadd(month,1, gjelderFra)) + cast(year(dateadd(month,1, gjelderFra)) as varchar))
)
end AntDays,
Regnr, 1 as AntCars ,year(GjelderFra) as [year], month(GjelderFra) as [month],
datename(month,gjelderFra) + ' ' + cast(year(gjelderFra) as varchar) as dato,
1 as [order]
FROM
#temp a join
tblAvdeling b
on FKBRAvdeling=AID
-- Perioden spørringen skal kjøres på
WHERE gjelderfra between @datoFOM and @datoTOM
)
order by a.anavn, a.year, a.month, [order]
GO