我有一个关于销售的查询,它显示了销售的月份和年份(字段名称是salemonth& saleyear)。示例返回集将是
January 2014
February 2014
March 2014
December 2014
January 2015
现在很明显我无法在我的直接查询中设置它,好像我试图通过出售它的ASC它来显示12月,2月,1月,1月,3月。或者即使我按年份ASC订购,它仍然不会在实际的日历月订单中显示。如何将此结果集排序为按实际日历的顺序显示?
有一点需要注意,他们可能是本月的0销售额(例如11月)我仍然希望查询中显示的这个月/年但显示为0。这可以实现吗?
答案 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,否则你显然需要再多输几位。