I have a query where it return diferent info about sales by hour, the problem is that I need to get 0 if at cerrtain hour the whas no registry on that table.
Here is the query:
SELECT COUNT(a.DOC_NO) AS "# TICKET",
SUM(a.TRANSACTION_TOTAL_AMT) AS "$ TICKET",
SUM(a.sold_qty) AS "# ITEMS", a.store_code AS "TIENDA",
to_char(a.CREATED_DATETIME,'yyyy-mm-dd') AS "FECHA",
to_char(a.CREATED_DATETIME,'HH24') || ':00' AS "HORA"
FROM document a
WHERE a.receipt_type in (0,1)
AND a.status=4 AND a.store_name!='CEDIS'
AND to_char(a.CREATED_DATETIME,'yyyy-mm-dd') = '2024-06-01'
AND a.STORE_CODE = 'ESF'
GROUP BY a.store_code,to_char(a.CREATED_DATETIME,'yyyy-mm-dd'), to_char(a.CREATED_DATETIME,'HH24')
ORDER BY a.store_code, to_char(a.CREATED_DATETIME,'yyyy-mm-dd'), to_char(a.CREATED_DATETIME,'HH24')
So I get something like this:
TICKETS | AMOUNT | ITEMS | STORE | DATE | HOUR |
---|---|---|---|---|---|
2 | 1398 | 2 | ESF | 2024-06-01 | 12:00 |
1 | 819 | 2 | ESF | 2024-06-01 | 14:00 |
2 | 758.6 | 4 | ESF | 2024-06-01 | 15:00 |
4 | 1386.6 | 4 | ESF | 2024-06-01 | 16:00 |
So far, I tried this:
SELECT CASE WHEN EXISTS(
SELECT COUNT(a.DOC_NO) AS "# TICKET",
SUM(a.TRANSACTION_TOTAL_AMT) AS "$ TICKET",
SUM(a.sold_qty) AS "# ITEMS", a.store_code AS "TIENDA",
to_char(a.CREATED_DATETIME,'yyyy-mm-dd') AS "FECHA",
to_char(a.CREATED_DATETIME,'HH24') || ':00' AS "HORA"
FROM document a
WHERE a.receipt_type in (0,1) and a.status=4
AND a.store_name!='CEDIS'
AND to_char(a.CREATED_DATETIME,'yyyy-mm-dd') = '2024-06-01'
AND a.STORE_CODE = 'ESF'
GROUP BY a.store_code,to_char(a.CREATED_DATETIME,'yyyy-mm-dd'), to_char(a.CREATED_DATETIME,'HH24')
ORDER BY a.store_code, to_char(a.CREATED_DATETIME,'yyyy-mm-dd'), to_char(a.CREATED_DATETIME,'HH24')
)
THEN to_char(a.CREATED_DATETIME,'HH24')
ELSE NULL END AS hours
FROM (VALUES('12'),('13'),('14'),('15'),('16')) CON(hours)
But I think I´m missing something, found this way on another post but it all I get is “missing right parentesis”.
So, what I need to get is that, if at 13:00 there was no sale the query shows 0 (or null)
TICKETS | AMOUNT | ITEMS | STORE | DATE | HOUR |
---|---|---|---|---|---|
2 | 1398 | 2 | ESF | 2024-06-01 | 12:00 |
0 | 0 | 0 | ESF | 2024-06-01 | 13:00 |
1 | 819 | 2 | ESF | 2024-06-01 | 14:00 |
2 | 758.6 | 4 | ESF | 2024-06-01 | 15:00 |
4 | 1386.6 | 4 | ESF | 2024-06-01 | 16:00 |