以月/年订单显示查询结果

时间:2015-03-04 21:18:00

标签: sql-server-2005

我有一个关于销售的查询,它显示了销售的月份和年份(字段名称是salemonth& saleyear)。示例返回集将是

January 2014
February 2014
March 2014
December 2014
January 2015

现在很明显我无法在我的直接查询中设置它,好像我试图通过出售它的ASC它来显示12月,2月,1月,1月,3月。或者即使我按年份ASC订购,它仍然不会在实际的日历月订单中显示。如何将此结果集排序为按实际日历的顺序显示?

有一点需要注意,他们可能是本月的0销售额(例如11月)我仍然希望查询中显示的这个月/年但显示为0。这可以实现吗?

1 个答案:

答案 0 :(得分:1)

一个快速的想法和修复(不是最漂亮的解决方案):

SELECT *, CAST(([Month] + ' 1,' + [Year]) AS Datetime) AS OrderDate FROM [TABLE] ORDER BY OrderDate

..或者如果您更喜欢隐藏排序列:

SELECT * FROM [TABLE] ORDER BY CAST(([Month] + ' 1,' + [Year]) AS Datetime)

这假设值存储为某种类型的varchar / string,否则你显然需要再多输几位。