选择从视图|订单不工作

时间:2011-06-07 05:17:56

标签: sql sql-server sql-server-2005 tsql sql-server-2008

我有一个名为[AccountsLedger]的视图,其日期字段名称为[Date]。 当我使用此查询时,order by不起作用:

SELECT CONVERT(varchar,[Date],103) as [Date]
                          ,[VoucherType]
                          ,[BillNo]
                          ,[Debit]
                          ,[Credit]
                      FROM [AccountsLedger]
                      order by [Date]

结果:

Date    VoucherType BillNo  Debit   Credit
01/06/2011  SALE    18  8400.00 0.00
03/06/2011  BEEJAK  15  0.00    24944.40
12/12/2009  PAYMENT 1   1000.00 0.00
12/12/2011  JOURNAL 1   800.00  0.00
12/12/2012  RECEIPT 4   0.00    1200.00
12/12/2016  RECEIPT 5   0.00    600.00

请帮忙。

2 个答案:

答案 0 :(得分:6)

试试这个

SELECT CONVERT(varchar,[Date],103) as [Date]
                      ,[VoucherType]
                      ,[BillNo]
                      ,[Debit]
                      ,[Credit]
FROM [AccountsLedger]
ORDER by [AccountsLedger].[Date]

问题是您的查询是按新形成的字符串值排序,您的命名方式与在表中命名datetime字段的方式相同。因此,为了解决问题,您需要为结果字符串值和基础字段指定不同的名称或指定表前缀。

答案 1 :(得分:2)

您的字段看起来是varchar类型,而不是日期。请尝试这样:

SELECT CONVERT(varchar,[Date],103) as [Date]
                          ,[VoucherType]
                          ,[BillNo]
                          ,[Debit]
                          ,[Credit]
                      FROM [AccountsLedger]
                      order by CONVERT(varchar,[Date],102)