2017-02-17 16 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日に、私はデータの12ヶ月を取得する必要がありますと言います。私がやります。私は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

のようになりました3210

order byは、同じ名前で返されている新しい値の代わりに元の値を使用する必要があることを知る必要があります。

変更あなたのorder byへ:質問は、クエリ含めるように編集した後

order by mytablename.CreateDate desc


アップデートをお試しください

order by tblCourtAttorneysAssigned.CreateDate desc 
0

を私はあなたが最後

でORDER 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でのフォーマットを固定することによって、問題を解決してきました。

おかげで、