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”格式的日期排序,我将不胜感激。

谢谢!

4

2 回答 2

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)
于 2013-06-27T15:26:18.850 回答
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) 
于 2013-06-27T15:25:45.993 回答