ユーザーは日付範囲を入力し、その範囲とその装置の同時使用数の間のすべての日付とを含むSQLに出力します。この例ではSQLを使用してユーザー入力の日付範囲内の同時実行日をカウントする
、あなたは私がこれらの日付の間、または何も含めるの下に見ることができるように、ユーザーの日付範囲は、03/08/2016 to 03/09/2016
です(カテゴリ別にグループ化しますが、私は唯一の「電動車椅子」を使って、ここに簡略化されました)
テーブルのスキーマは次のとおりです。
trans_date | trans_end_date | eq_category
17/03/2016 | 16/10/2016 | POWERCHAIR
08/08/2016 | 08/08/2016 | POWERCHAIR
12/08/2016 | 12/08/2016 | POWERCHAIR
17/08/2016 | 18/08/2016 | POWERCHAIR
22/08/2016 | 22/08/2016 | POWERCHAIR
26/08/2016 | 26/08/2016 | POWERCHAIR
02/09/2016 | 02/09/2016 | POWERCHAIR
出力したいと思います。
date | concurrent_use
03-08-2016 | 1
04-08-2016 | 1
05-08-2016 | 1
06-08-2016 | 1
07-08-2016 | 1
08-08-2016 | 2
09-08-2016 | 1
10-08-2016 | 1
11-08-2016 | 1
12-08-2016 | 2
13-08-2016 | 1
14-08-2016 | 1
15-08-2016 | 1
16-08-2016 | 1
17-08-2016 | 2
18-08-2016 | 2
19-08-2016 | 1
20-08-2016 | 1
21-08-2016 | 1
22-08-2016 | 2
23-08-2016 | 1
24-08-2016 | 1
25-08-2016 | 1
26-08-2016 | 2
27-08-2016 | 1
28-08-2016 | 1
29-08-2016 | 1
30-08-2016 | 1
31-08-2016 | 1
01-09-2016 | 1
02-09-2016 | 2
03-09-2016 | 1
何1 or 0
同時にその日の任意の機器が出てきてはいけないと、私はそれから除外することができます。
私はこれがギャップ/アイランドの問題ではないと思っていますが、ステートメントでこれを取得しようとしている空白を描いています。
これは1つのように思われます。日付フィールドには1日の時刻も含まれていますが、それ以外の時刻は期待通りに機能するため、 'CAST(日付はtrans_date) 'にしてください。 – Kowalski