Мне нужна ваша помощь с Oracle. Мне нужно сделать контрольный отчет, используя таблицу с именем restaurant_info
Таблица выглядит следующим образом:
|------------------|---------------|
| COMP_NAME | CODE |
|------------------|---------------|
| Pizza Co | PIC |
|------------------|---------------|
| So Asian | SOA |
|------------------|---------------|
У меня есть другая таблица, которая называется restaurant_inc
и возвращает доход ресторанов в конце в день.
|------------------|---------------|-----------------|
| CODE | DATE_RES | INCOME |
|------------------|---------------|-----------------|
| PIC | 14/04/2020 | 15908 |
|------------------|---------------|-----------------|
| PIC | 15/04/2020 | 10890 |
|------------------|---------------|-----------------|
| PIC | 16/04/2020 | 10000 |
|------------------|---------------|-----------------|
| PIC | 17/04/2020 | 12890 |
|------------------|---------------|-----------------|
| PIC | 18/04/2020 | 13890 |
|------------------|---------------|-----------------|
| PIC | 20/04/2020 | 10880 |
|------------------|---------------|-----------------|
| PIC | 21/04/2020 | 9890 |
|------------------|---------------|-----------------|
| PIC | 22/04/2020 | 9500 |
|------------------|---------------|-----------------|
Как видно из таблицы, отображается доход ресторана, идентифицируемый по коду. То, что я хочу сделать, - это выполнить запрос с надписью COMP_NAME
, CODE
, который сообщает, отсутствует ли доход, с помощью оператора CASE. Результат выглядит следующим образом:
|------------------|---------------|---------------|---------------|
| COMP_NAME | CODE | DATE_RES | CHECK |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 14/04/2020 | |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 15/04/2020 | |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 16/04/2020 | |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 17/04/2020 | |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 18/04/2020 | |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 19/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 20/04/2020 | |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 21/04/2020 | |
|------------------|---------------|---------------|---------------|
| Pizza Co | PIC | 22/04/2020 | |
|------------------|---------------|---------------|---------------|
| So Asian | SOA | 14/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
| So Asian | SOA | 15/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
| So Asian | SOA | 16/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
| So Asian | SOA | 17/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
| So Asian | SOA | 18/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
| So Asian | SOA | 20/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
| So Asian | SOA | 21/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
| So Asian | SOA | 22/04/2020 | Missing |
|------------------|---------------|---------------|---------------|
Как вы можете видеть в моем примере, значение CHECK
для So Asia
пусто, поскольку в таблице restaurant_inc
нет строки, отображающей доход. Я не знаю, как добавить дату в мой запрос select и как обработать пропущенные значения в таблице restaurant_inc
. В моем контрольном запросе мне нужно указать диапазон дат для столбца DATE_RES
. Не могли бы вы помочь мне найти способ сделать этот контрольный запрос?
РЕДАКТИРОВАТЬ: Я пытался этот запрос:
SELECT inf.comp_name,inf.code,inc.date_res,case when
(select income from restaurant_inc r where r.date_res=inc.date_res)
is null then 'Missing' end as CHECK FROM restaurant_info inf,
restaurant_inc inc where inf.code=inc.code and
inc.date_res>=to_date('14/04/2020','DD/MM/YYYY')
and inc.date_res<=to_date('22/04/2020','DD/MM/YYYY')
Мой диапазон дат - между 14 апреля и 22 апреля. Не отображается «Отсутствует» для So Asia
и Pizza Co
. Я думаю, что это потому, что дата не в таблице restaurant_inc
. Заранее благодарю за помощь.