-1

2013 年 1 月 15 日から 2013 年 2 月 3 日までという 2 つの特定の日付の間にレンタルを行っている人がいます。私が担当しているのは、毎月のアクティブなレンタルの数に関する「アクティブな」レポートを表示することです。たとえば、これは 1 月のカウントと 2 月のカウントに表示されます。

これに関する助けをいただければ幸いです。私は同様のものを探しましたが、何も見つかりませんでした。私のSQLに関する知識は、主に単純な追加/変更/削除コードに関するものです。

4

3 に答える 3

2
SELECT * FROM `rentals` WHERE `date` BETWEEN '2013-03-04' AND '2013-04-04'

明らかに、テーブル名と列名を独自のものに置き換えてください...これはMySQLです。投稿時に使用しているDBソフトウェアを指定していませんでした。

于 2013-03-05T14:31:34.810 に答える
0

2 つの日付の間で「アクティブ」なレコードを見つける一般的な方法は次のようになります。

 ...
 WHERE startDate <= @periodEnd AND endDate >= @periodStart
于 2013-03-05T14:29:38.493 に答える
0

各月のアクティブを見つけたい場合は、月のリストから始めて、それらをアクティビティ レコードと比較する必要があります。毎月の始まりがあると仮定しましょう。

select months.yyyymm, count(*) as NumActives
from (select distinct to_char(startdate, 'yyyy-mm') as yyyymm
      from activity
     ) as months join
     activity a
     on yyyymm between to_char(a.startdate, 'yyyy-mm') and to_char(a.enddate, 'yyyy-mm')
group by months.yyyymm

Oracle/Postgres 関数to_char()を使用して、日付を年月表現に変換しました。他のデータベースには、同じ目標を達成する別の方法があります。

于 2013-03-05T14:35:23.947 に答える