1

UseDates 列を持つテーブルから過去 6 か月のデータを取得するクエリがあります (6 月の今日の時点で、このテーブルには 2011 年 12 月から 2012 年 5 月までの日付があります)。

1 を 12 月のすべての日付、2 を 1 月のすべての日付などに関連付ける「ランク」列を含めたいと考えています。今から 1 か月後にこのクエリを開くと、1 は 1 月などに関連付けられます。

これが理にかなっていることを願っています!

例、今クエリを実行した場合

UseDate        Rank
12/31/2011     1
1/12/2012      2
...
5/23/2012      6

たとえば、8 月にクエリを実行した場合:

UseDate        Rank
2/16/2012      1
3/17/2012      2
...
7/21/2012      6

たとえば、3 月にクエリを実行した場合:

UseDate        Rank
9/16/2011      1
10/17/2011     2
...
2/24/2012      6
4

3 に答える 3

0

month 関数を使用して、 nowUseDates関数の結果から減算できます。負になる場合は、12 を追加します。また、0 ではなく 1 から開始するため、1 を追加することもできます。明らかに、半年の日付範囲で機能するはずです。数年間「ランク付け」する必要がある場合、問題が発生します。

于 2012-06-22T18:51:54.813 に答える
0
SELECT
    UseDates,
    DateDiff("m", Date(), UseDates) + 7 AS [Rank]
FROM YourTable;
于 2012-06-22T18:58:23.080 に答える
0

カウントでランク付けできます。

SELECT 
   Table.ADate, 
   (SELECT Count(ADate) 
    FROM Table b 
    WHERE b.ADate<=Table.ADate) AS Expr1
FROM Table3;

サブクエリで where ステートメントを繰り返す必要があります。

SELECT 
   Table.ADate, 
   (SELECT Count(ADate) 
    FROM Table b 
    WHERE b.ADate<=Table.ADate And Adate>#2012/02/01#) AS Expr1
FROM Table3
WHERE   Adate>#2012/02/01#
于 2012-06-22T19:02:29.693 に答える