• Start with something like this:

    select

    idDGIG,

    count(idDGIG) as Number

    FROM (

    SELECT

    LEFT (idDGIG, 2) AS idDGIG,

    FROM

    TABLE_LONG

    WHERE

    1

    AND (

    LEFT (idDGIG, 2) LIKE '%QM%'

    OR LEFT (idDGIG, 2) LIKE '%QI%'

    OR LEFT (idDGIG, 2) LIKE '%QO%'

    OR LEFT (idDGIG, 2) LIKE '%QS%'

    )

    AND DATE_START = DATE_ADD(CURDATE(), INTERVAL - 1 DAY)

    UNION ALL

    SELECT

    LEFT (idDGIG, 2) AS idDGIG,

    FROM

    TABLE_SHORT

    WHERE

    1

    AND (

    LEFT (idDGIG, 2) LIKE '%QM%'

    OR LEFT (idDGIG, 2) LIKE '%QI%'

    OR LEFT (idDGIG, 2) LIKE '%QO%'

    OR LEFT (idDGIG, 2) LIKE '%QS%'

    )

    AND DATE_START = DATE_ADD(CURDATE(), INTERVAL - 1 DAY))

    GROUP BY

    idDGIG