何がしたいのかわかりにくいですが、
select decode(count(*), 0, null, count(*))
グループにレコードがない場合は null を返します。
更新:今、あなたが望むものがより明確になりました:
select date_code, cnt
from(
select trunc(sysdate-10) + level - 1 as date_code
from dual
connect by level <= 10
)
left join(
SELECT COUNT(*) cnt,TRUNC(TEST_DATE_CREATE) trunc_create
FROM TEST_TABLE
WHERE TEST_DATE_CREATE > (SYSDATE - 10)
GROUP BY TRUNC(TEST_DATE_CREATE);
) on trunc_create = date_code
UPDATE2 : 必要なものがより明確になりました。null ではなくゼロです。
select date_code, count(*)
from(
select trunc(sysdate-10) + level - 1 as date_code
from dual
connect by level <= 10
)
left join TEST_TABLE on TRUNC(TEST_DATE_CREATE) = date_code
GROUP BY date_code;