2013-06-27 70 views
0

我正在使用MS Access我碰到一個問題,我確定有一個簡單的修復,但我找不到它。我最初的查詢的第一列返回日期的「YY-WW」,但這與我的排序有關。所以我決定今年只用「WW」。不過,我今年只能通過Group By返回記錄。簡單:分組 - 有(在今年內)

這裏是我的代碼:

SELECT DATEPART("ww",Total.Dated) AS Week, 

Sum(Total.SplitTrailers) AS SplitTrailers, Sum(Total.NonSplitTrailers) AS NonSplitTrailers, 
Sum([Total].[SplitTrailers]+[Total].[NonSplitTrailers]) AS TotalTrailers, 

FORMAT(IIf([SplitTrailers]<=0,0, [SplitTrailers]/([SplitTrailers]+[NonSplitTrailers])), "Percent") AS [% Frame Dock] 

FROM Total 
GROUP BY DATEPART("ww",Total.Dated) 

我會非常感激,如果有人能告訴如何從今年或如何通過「YY-WW」格式化的日期排序只返回的記錄。

謝謝!

+0

我想在括號中的標題說明,當你希望你的答案是一個很好的新的約定! – Peter

+0

哈哈我的意思是它是對問題的描述。甚至沒有想到它那樣大聲笑 – Duffie

回答

1
SELECT DATEPART("ww",Total.Dated) AS Week, 

Sum(Total.SplitTrailers) AS SplitTrailers, Sum(Total.NonSplitTrailers) AS NonSplitTrailers, 
Sum([Total].[SplitTrailers]+[Total].[NonSplitTrailers]) AS TotalTrailers, 

FORMAT(IIf([SplitTrailers]<=0,0, [SplitTrailers]/([SplitTrailers]+[NonSplitTrailers])), "Percent") AS [% Frame Dock] 

FROM Total where Year(Total.Date)=Year(GetDate())--this will return the current year data 
GROUP BY DATEPART("ww",Total.Dated) 
+0

哇,我掛了很多關於添加一個HAVING子句,我只是使用WHERE消隱。尷尬!謝謝。我只需要將GetDate()更改爲Date()。 – Duffie

+0

@Duffie你好歡迎..如果它幫助你比不忘記接受作爲回答 –

+0

四分鐘 – Duffie

0

你不能只是添加一個WHERE子句嗎?

SELECT 
    DATEPART("ww",Total.Dated) AS Week, 
    Sum(Total.SplitTrailers) AS SplitTrailers, 
    Sum(Total.NonSplitTrailers) AS NonSplitTrailers, 
    Sum([Total].[SplitTrailers]+[Total].[NonSplitTrailers]) AS TotalTrailers, 
    FORMAT(IIf([SplitTrailers]<=0,0, [SplitTrailers]/([SplitTrailers]+[NonSplitTrailers])), "Percent") AS [% Frame Dock] 
FROM Total 
WHERE Year(Total.Dated) = Year(Date()) 
GROUP BY DATEPART("ww",Total.Dated) 
+0

哇,我掛了很多關於添加一個HAVING子句,我只是在使用WHERE消隱。尷尬!謝謝。 – Duffie