2017-02-17 83 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格式解決了這個問題。

感謝,