DB2 multiple rows with the same value
CTE part returns stores and dates that have not sold this products '001,002,003', the second part returns only those that have not sold any of them.

NOTE: COUNT(*) = 3 because you're looking for 3 products.

WITH ct AS
(
  SELECT
    store_id,
    dt,
    product_code
  FROM
    DAILY_SALES_RECORDS
  WHERE
    product_code IN ('001', '002', '003')
  GROUP BY
    store_id,
    dt,
    product_code
  HAVING
    SUM(sales) = 0
)
SELECT 
  store_id,
  dt
FROM
  ct
GROUP BY
  store_id,
  dt
HAVING
  COUNT(*) = 3;




store_id | dt                 
-------: | :------------------
       1 | 01/01/2019 00:00:00
       3 | 01/01/2019 00:00:00
       1 | 03/01/2019 00:00:00



db&lt;>fiddle here

As ypercube has pointed out in comment the easiest, grouping by store_id and date returning those that has sold nothing:

SELECT
    store_id,
    dt 
  FROM
    DAILY_SALES_RECORDS
  WHERE
    product_code IN ('001', '002', '003')
  GROUP BY
    store_id,
    dt
  HAVING
    SUM(sales) = 0 ;