Set @datoFOM = '01.12.2003' Set @datoTOM = '31.12.2003'
SELECT fkbravdeling, a.SiOppForsikringFra, b.dato, a.Regnr, bid, gjelderfra, aktiv 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,'01jan2050') -- Mulig dette går raskere? Da jeg kun skal sammenligne en verdi. -- on b.dato between gjelderFra and IsNull(SiOppForsikringFra,'01jan2050')
select * from ( SELECT anavn,SiOppForsikringFra, aktiv, gjelderFra, sum( case when month(SiOppForsikringFra) = month(dato) and year(SiOppForsikringFra) = year(dato)then DateDiff(d, dato, SiOppForsikringFra) else DateDiff(d, dato, dateadd(day, -1, '01' + datename(month, dateadd(month,1, dato)) + cast(year(dateadd(month,1, dato)) as varchar)) ) end ) as AntDays, 'Antall aktive denne mnd' as regnr, count(*) as AntCars, year(dato) as [year], month(dato) as [month], datename(month,dato) + ' ' + cast(year(dato) as varchar) as dato, 2 as [order] FROM #temp a join tblAvdeling on FKBRAvdeling=AID -- Perioden spørringen skal kjøres på WHERE dato between @datoFOM and @datoTOM -- kjører på avdeling --WHERE fkbravdeling = 182 group by anavn,SiOppForsikringFra, aktiv, gjelderFra, month(dato), year(dato), datename(month,dato) + ' ' + cast(year(dato) as varchar) ) a union ( SELECT anavn,SiOppForsikringFra, aktiv, gjelderFra, case when month(SiOppForsikringFra) = month(dato) and year(SiOppForsikringFra) = year(dato)then DateDiff(d, dato, SiOppForsikringFra) else DateDiff(d, dato, dateadd(day, -1, '01' + datename(month, dateadd(month,1, dato)) + cast(year(dateadd(month,1, dato)) as varchar)) ) end AntDays,
Regnr, 1 as AntCars ,year(dato) as [year], month(dato) as [month], datename(month,dato) + ' ' + cast(year(dato) as varchar) as dato,
1 as [order] FROM #temp a join tblAvdeling b on FKBRAvdeling=AID -- Perioden spørringen skal kjøres på WHERE dato between @datoFOM and @datoTOM -- kjører på avdeling --WHERE fkbravdeling = 182 ) order by a.anavn, a.year, a.month, [order]
if(object_id('tempdb.dbo.#temp')<>1) drop table #temp GO
Den siger at du prøver at hent en kolonne som ikke findes: Response.Write (Rec("findesIkke"))
- ville give denne fejl
Dit recordset er sikkert ikke tomt
For at finde fejlen skal jeg se ASP'en, men prøv ørst at bruge AS i din select; De kolonner som du er nødt til at angive med table.colname, skal du give et specifikt navn med AS fx:
SELECT a.SiOppForsikringFra AS aSiOppForsikringFra FROM ...
strSQL = "sp_aktive" set adoRs = adoCn.Execute(strSQL)
Do While Not adoRs.EOF Response.Write(adoRs(0) & "<br>") adoRs.MoveNext Loop
adoRs.Close Set adoRs = Nothing
adoCn.Close Set adoCn = Nothing
I ASP, så kan du bare kjøre hele SQL'en. Den har en vanlig select som spytter ut en tabell. DU kan også hente den fra stored procedure som du kaller fra asp ved ExecuteQuery på.
1. Bank din computer tre til fire gange hårdt ned i gulvet. 2. Drik evt. en kold øl 3. Begynd at dyrke skiløb, klatring eller en anden udendørs aktivitet, detteher er sgu FRUSTRERENDE.
- Nej, jeg ved ikke hvad jeg skal finde på mere ... :o)
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.