Search

onze sponsors

microsoft_logo.gif


 

computrain_logo.JPG

Forum Login | Register
   Forum

 

Subject: SET DATEFIRST gebruiken in een VIEW
Prev Next
You are not authorized to post a reply.

Author Messages
Stephan BussingUser is Offline

Posts:67

21-01-2010 09:26:58 Alert 

 Hallo, ik heb een view waarin veel met datums (data) wordt gewerkt. Nu moet ik bepaalde totalen per week en per weekend tonen in hiervoor bestemde kolommen. De view werkt prima, maar het probleem is dat ik eigenlijk SET DATEFIRST 1 moet zetten, alleen lukt dat niet in een view. 

 

Ik heb geprobeerd met ALTER VIEW dit voor elkaar te krijgen, maar dat werkt ook niet. Als ik de query in de view in management studio draai kan ik wel eerst SET DATEFIRST 1 zetten en dan zijn de resultaten zoals bedoeld. De query in de view echter geeft een ander resultaat. dit is te wijten aan het feit dat standaard SET DATEFIRST op 7 staat.

Ik zou een SP aan kunnen maken en die aan kunnen roepen, maar ik denk dat er vast andere mogelijkheden zijn.

Hoe kan ik dit regelen?

 

TIA

 

 

André KammanUser is Offline
PASS Nederland

Posts:137


21-01-2010 19:17:25 Alert 
Hoi Stephan,

Volgens mij is dat idd niet mogelijk en zul je het moeten zetten voor je de view gebruikt.
Bijvoorbeeld zoals je zelf al aangeeft in een SP...

Groeten,

André
Hugo KornelisUser is Offline

Posts:46

27-01-2010 09:36:43 Alert 
Hoi Stephan,

Een andere oplossing is je views te herschrijven zodat ze niet meer afhankelijk zijn van de DATEFIRST instelling.

Als je bijvoorbeeld wil aggregeren per week, dan doe je dat nu waarschijnlijk met GROUP BY DATEPART(week, MijnDatum), waarbij het resultaat afhangt van DATEFIRST. Je kan die afhankelijkheid kwijtraken door DATEPART te vervangen door een functie die het aantal dagen tussen MijnDatum en een door je zelf gekozen vaste datum berekent en dat door 7 deelt:
GROUP BY DATEDIFF(day, '20100104', MijnDatum) / 7
Ik kies hier voor uitgangsdatum 4 januari 2010, een maandag. Omdat bij integer deling de rest vervalt, is het resultaat hiervan dat je voor elke week (van maandag t/m zondag) hetzelfde krijgt, en bij de volgende maandag gaat het resultaat eentje omhoog. Als jij een andere definitie vooor weken gebruikt (bv zaterdag t/m vrijdag, zoals mijn TV gids), dan hoef je alleen maar de uitgangsdatum te vervangen.

Groetjes, Hugo

Met vriendelijke groeten,

Hugo Kornelis (SQL Server MVP)
You are not authorized to post a reply.
Forums > Forums > Ontwikkelen > SET DATEFIRST gebruiken in een VIEW



ActiveForums 3.6
  
Copyright (c) 2012 PASS Nederland   Privacy Statement  Terms Of Use