选择从视图| 订单不工作

Aks*_*y J 1 sql t-sql sql-server sql-server-2005 sql-server-2008

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

SELECT CONVERT(varchar,[Date],103) as [Date]
                          ,[VoucherType]
                          ,[BillNo]
                          ,[Debit]
                          ,[Credit]
                      FROM [AccountsLedger]
                      order by [Date]
Run Code Online (Sandbox Code Playgroud)

结果:

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
Run Code Online (Sandbox Code Playgroud)

请帮忙.

Ale*_*Aza 6

试试这个

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

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

  • +1 - 这是问题的正确标识,但解决方案是简单地按顺序应用表前缀.即,只需使用`[AccountsLedger].[Date]`而不仅仅是`[Date]`. (2认同)