質問: '009405'
回答: (+) を使った書き方だと、結合条件と抽出条件の区別が曖昧になります。 >売伝.納品日 between to_date('20180401','yyyy/mm/dd') and to_date('20180430','yyyy/mm/dd') これだと、売伝.納品日が null になるデータは抽出されません。 標準sql の書き方だと、はっきりと区別できます。 select 売明.商品コード, 売伝.納品日, 月日.全日, -- to_char(売伝.納品日,'dy') as 曜日, to_char(月日.全日,'dd') as 日, to_char(月日.全日,'dy') as 曜日 -- count(売明.商品コード) as 売上回数 from ( select to_date('20180401', 'yyyymmdd') + rownum - 1 as 全日 from all_catalog where to_date('20180401', 'yyyymmdd') + rownum - 1 <= to_date('20180430', 'yyyymmdd') order by 1 ) 月日 left join 売上伝票データ 売伝 on 月日.全日 = 売伝.納品日 left join (select * from 売上明細データ where 商品コード = '009405' ) 売明 on 売伝.売上伝票番号 = 売明.売上伝票番号 こんな感じ。