私はSQLにかなり慣れているので、私の無知を言い訳したり、ここで基本的な質問をしています。私がしようとしているのは、アウトレットが最後の日に割り当てを作成しなかった場合にテーブルが0の値を返すようにすることです。私が使用しているコードはこれです:SQLカウント関数が0を返すようにするにはどうすればよいですか?
SELECT public.outlets.title AS "Outlet",
COUNT(public.outlets.id) AS "Assignment Count"
FROM public.assignments
JOIN public.users
ON public.users.id=public.assignments.creator_id
LEFT JOIN public.outlets
ON public.outlets.id = public.users.outlet_id
WHERE public.outlets.dispatch_enabled = 'True'
AND DATE(public.assignments.created_at) = DATE(CURRENT_TIMESTAMP- interval '1 day')
GROUP BY public.outlets.title
HAVING count(public.outlets.id) = 0
ORDER BY public.outlets.title ASC
私は、COALESCEを試みたが、私は本当に私がそれを正しく実装してるかどうかを知ることは十分理解していない正直に言うと。それが現れて、私が使用している現在のコードは私に "NO ROWS RETURNED"を与えています。私はどこの句の様々な部分を取り出して、それが役に立たないかどうかを見てみました。どんな助けでも大歓迎です!!
'public.outlets'へのLEFT JOINは、' public.outlets'の値をチェックする 'WHERE'節によって無効になります。それはインナー・ジョイントなのかもしれません。なぜなら、あなたは何の行も得ていないからです。 –