tengo algunos pedidos en una mesa y la última fecha de la orden de 2011 es el 20 de diciembreSQL Server devuelve la semana inesperada número
estoy usando un comando SQL para calcular el número de pedidos en una semana:
SELECT CONVERT(VARCHAR(3),DATENAME(week,convert(datetime,order_date,103))) AS week,
COUNT(1) as orders
FROM order_table
where DATENAME(YEAR,convert(datetime,order_date,103)) = '2011'
GROUP BY CONVERT(VARCHAR(3),DATENAME(week,convert(datetime,order_date,103)))
order by week asc
me devuelve el algunos de los siguientes resultados:
Week | Orders
41 | 42
42 | 110
43 | 115
...
...
51 | 155
52 | 15
el problema con esto es que es la última fecha de la orden de 2011, como se ha mencionado que tengo es el 20 dic 2011, por lo que no puede seamos ek 52 así que debe ser la semana 51.
Tengo algunas otras estadísticas (de otro sistema, no servidor SQL) que me da algunas otras cifras y la última semana es 51 que no tengo ninguna duda es correcta. ¡Así que habrá una consulta si la gente mira a los dos!
¿Alguien tiene alguna idea o sabe cómo ordenar esto?
Gracias,
ha encontrado interesante para el año 2012 .. http://wiki.answers.com/Q/How_many_weeks_in_the_year_2012 –
@WilliamDwyer el enlace es incorrecto. Iso_week está determinada por el número de jueves del año. Entonces, una semana (de lunes a domingo) donde el jueves es el segundo jueves del año se considera la semana 2. –