イベントが「正規」であった場合は、以下のクエリは、オブジェクトによって日数のカウントを探していますが、そのオブジェクトが指定した日付の範囲内にあるため、クエリの結果は「クリアランス」と表示する結果。このクエリで、今日の日付から2011年4月10日までの日付範囲の「通常」イベントを持つオブジェクトのみを表示する方法はありますか?私はCまたはSではないイベントを試み、where句でイベントを移動しましたが、同じ結果が得られます。COUNTのCASE文は
表1:
Cal_Date Object Event Time Stamp Time Stamp
4/10/2017 Soap Regular 4/10/2017 4/10/2017
4/11/2017 Soap Sale 4/11/2017 4/14/2017
4/12/2017 Soap Sale 4/11/2017 4/14/2017
4/13/2017 Soap Sale 4/11/2017 4/14/2017
4/14/2017 Soap Sale 4/11/2017 4/14/2017
4/15/2017 Soap Regular 4/15/2017 4/20/2017
4/16/2017 Soap Regular 4/15/2017 4/20/2017
4/17/2017 Soap Regular 4/15/2017 4/20/2017
4/18/2017 Soap Regular 4/15/2017 4/20/2017
4/19/2017 Soap Regular 4/15/2017 4/20/2017
4/20/2017 Soap Regular 4/15/2017 4/20/2017
4/10/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/11/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/12/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/13/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/14/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/15/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/16/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/17/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/18/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/19/2017 Shampoo Clearance 4/10/2017 12/31/2017
4/20/2017 Shampoo Clearance 4/10/2017 12/31/2017
SELECT
OBJECT
COUNT(CASE WHEN EVENT='Regular'AND CAL_DATE BETWEEN DATE '4/10/2017' AND CURRENT_DATE THEN 1 END) AS DAYS
FROM TABLE 1
GROUP BY
OBJECT
クエリ結果:
Object Days
Soap 7
Shampoo ?
望ましい結果:
Object Days
Soap 7
HAVING文を使用してください。 –
私はteradataについてはわかりませんが、単純にそれらの条件をWHERE節に入れてからcount(*)することはできません。オラクルでは、これが正常に動作します: 'selectオブジェクトは、WHERE TO_DATE('10 .04.2017' 、 'DD.MM.YYYY')とSYSDATE群との間にEVENT = '正規' AND CAL_DATE OBJECT' – Demo
あなたの結果によってTEST_MYTABLE01からのカウント(*) 'Shampoo?'はあなたの問い合わせによって返されることはできません。 'Shampoo 0'の代わりになります。 – dnoeth