インストール日と削除日のみに基づいて在庫を追跡し、特定の日にインストールされたものを報告しようとしています。まだインストールされているレコードには削除日がありません。そのため、削除日を に設定しようとしていDate(now())ます。しかし、その間に追加するinstall_dateとremoval_date、両方の日付を持つレコードのみが見つかります。
を含む在庫テーブルがあり、name2012-01-01から 2014-12-31 までのすべての日付を含むテーブルがあります。install_dateremoval_datemaster_date
Select inventory.name,
inventory.install_date,
IFNULL(inventory.removal_date,DATE(NOW())),
master_date.date
FROM inventory, master_date
WHERE master_date.date BETWEEN inventory.install_date
AND inventory.removal_date
between 句を削除すると、NOW に設定されますが、 NOW より前removal_dateのレコードが引き続き含まれます。removal_datewhere句を使用すると、removal_datenullではないが日付フィールドが正しいレコードのみが返されます。
removal_dateNULL の代わりに NOW を使用して、正しいレコードを返すにはどうすればよいですか?