2017-02-17 43 views
1

我在我的表中有一个日期列CreateDate (datetime, not null)日期栏顺序

使用以下where子句:

Where 
    -- Code for 12 Months Back at a Time 
    CreateDate >= dateadd(month,datediff(month, 0, getdate())-12,0) 

如果我跑我的报告说,2017年3月1日,我应该是十二个月的数据。我做。

我想通过CreateDate订购并获得下列顺序

Mar 2017 
Feb 2017 
Jan 2017 
Dec 2016 
Nov 2016 
Oct 2016 
Sep 2016 
Aug 2016 
Jul 2016 
Jun 2016 
May 2016 
Apr 2016 

下面是完整的查询:

SELECT DISTINCT 
    tblCourtAttorneysAssigned.CourtAssignment AS [CourtAssignment], 
    tblCourtAttorneysAssigned.AttorneyBarNumber AS [AttorneyBarNumber], 
    tblCourtAttorneysAssigned.AttorneyFirstName AS [AttorneyFirstName], 
    tblCourtAttorneysAssigned.AttorneyLastName AS [AttorneyLastName], 
    --tblCourtAttorneysAssigned.CaseNo, 
    --tblPeople.LastName, 
    --tblPeople.FirstName, 
    tblCourtAttorneysAssigned.HowAssigned AS [HowAssigned], 
    CONVERT(VARCHAR(10), tblCourtAttorneysAssigned.CreateDate, 101) AS[CreateDate] 



FROM tblBookIn 
    INNER JOIN tblOffense ON tblBookIn.BookInID = tblOffense.BookInID 
    INNER JOIN tblPeople ON tblBookIn.PersonID = tblPeople.PersonID 
    INNER JOIN tblCourtAttorneysAssigned ON tblOffense.CaseNo = tblCourtAttorneysAssigned.CaseNo 
WHERE CourtAssignment LIKE 'M%' 
    AND 
    -- Code for 12 Months Back at a Time 
    CreateDate >= dateadd(month,datediff(month, 0, getdate())-12,0) 



ORDER by 
[CreateDate] asc 
--courtassignment ASC, 
-- AttorneyLastName ASC; 

感谢

+0

如果'CreateDate'是'你在您的文章已经指出DateTime'场,为什么你能不能做到'CREATEDATE desc'? – Santi

+0

你可以写下完整的查询吗? “ – fustaki

+1

”但是,CreateDate desc不起作用。“它以什么方式不起作用? – hatchet

回答

2

我猜你正在使用order by CreateDate desc但你在您的查询中将CreateDate设置为类似format(CreateDate, 'MMM yyyy') as CreateDate

因此,您的order by需要知道您希望它使用原始值而不是使用相同名称返回的新值。

尝试order by mytablename.CreateDate desc


更新后的问题编辑成包括查询:

改变你的order by到:

order by tblCourtAttorneysAssigned.CreateDate desc 
0

我想你应该by子句末

使用顺序
SELECT  { fn MONTHNAME(OrderDate) } AS MonthName, YEAR(OrderDate) AS Year, SUM(TotalValue) AS Profits 
FROM   [Order] 
WHERE  (YEAR(OrderDate) = @year) 
GROUP BY { fn MONTHNAME(OrderDate) }, YEAR(OrderDate) 
ORDER BY { fn MONTH(OrderDate) }, YEAR(OrderDate) 

你可以像这样

SELECT  CASE { fn MONTH(OrderDate) } 
      when 0 then 'JAN' 
      when 1 then 'FEB' 
      when 2 then 'MAR' 
      when 3 then 'APR' 
      when 4 then 'MAY' 
      when 5 then 'JUN' 
      when 6 then 'JUL' 
      when 7 then 'AUG' 
      when 8 then 'SEP' 
      when 9 then 'OCT' 
      when 10 then 'NOV' 
      when 11 then 'DEC' 
      END 
     AS MonthName, YEAR(OrderDate) AS Year, SUM(TotalValue) AS Profits 
    FROM   [Order] 
    WHERE  (YEAR(OrderDate) = @year) 
    GROUP BY { fn MONTH(OrderDate) }, YEAR(OrderDate) 
    ORDER BY { fn MONTH(OrderDate) }, YEAR(OrderDate) 
0

感谢所有,我已经删除的日期字段转换和固定在SSRS格式解决了这个问题。

感谢,