Oracleのセットアップ:
CREATE TABLE table1 (ID, Name, Start_Date, End_date) AS
SELECT 1, 'John', DATE '0009-12-20', DATE '0010-09-15' FROM DUAL;
CREATE TABLE Table2 (Low, High, Frequency) AS
SELECT 1, 50, 'Weekly' FROM DUAL UNION ALL
SELECT 51, 150, 'Monthly' FROM DUAL UNION ALL
SELECT 151, 730, 'Yearly' FROM DUAL ;
クエリ:
SELECT *
FROM table1 t1
INNER JOIN
table2 t2
ON (end_date - start_date BETWEEN LOW AND HIGH);
出力:
ID NAME START_DATE END_DATE LOW HIGH FREQUENCY
---------- ---- ------------------- ------------------- ---------- ---------- ---------
1 John 0009-12-20 00:00:00 0010-09-15 00:00:00 151 730 Yearly
出典
2016-05-01 09:21:55
MT0
「1」が低く、「50」が高かったのは2つの日付の日数の差ですか? –
** TAG **クエリには、ベンダーごとに異なるDATE関数が必要なため、使用しているDBMSは –
です。「1日のうち最低日と最高日は50日間で違いますか?はい、オラクルです。 – Geet