У меня есть следующая проблема SQL.Группа Oracle и пустой результирующий набор
Сценарий:
У меня есть две таблицы: Изменение и ChangeTicket. Существует соотношение 1: n. У одного Изменить есть cero или many changeTickets. Без изменений нет изменений. У измененияTicket есть статус (открыт/закрыт/...) У changeTicket есть поле, представляющее, сколько минут прошло это изменение.
A Изменилось предприятие и месяц. В течение месяца происходит ТОЛЬКО одно изменение.
Я должен отчитываться за данную компанию и за данный месяц сумму минут Данное изменение было принято.
Я написал следующий оператор SQL.
select nvl(sum(service_req), 0) as SUM_REQ
from Change_Ticket, Change
where Change.company_id (+) = '0'
and Change.month (+)='07'
and Change.Id (+) = Change_Ticket.Change_Id
Все в порядке.
Если за данный месяц и данные компании нет ни изменений, ни билетов , тогда я получаю нулевое значение, которое преобразуется в cero usgin функцию NVL.
Проблема возникает, когда я хочу сгруппировать информацию, используя статус. Если добавить пункт Grup
select Change_Ticket.status, nvl(sum(service_req), 0) as SUM_REQ
from Change_Ticket, Change
where Change.company_id (+) = '0'
and Change.month (+)='07'
and Change.Id (+) = Change_Ticket.Change_Id
group by Change_Ticket.status
тогда мой результат является пустым множеством. Я понимаю, что нет статуса, а затем результирующий набор как-то согласован, а затем возвращается пустой результирующий набор.
Как я могу избежать этой проблемы. В этом случае мне необходимо сообщить пустой статус и cero как сумма.
(Кстати, я также попытался положить NVL (Change_Ticket.status, 'None') но не работает)
Спасибо большое заранее.
Луис
спасибо за Ваш ответ. К сожалению, у меня нет статусов таблиц.У меня только один статус столбца. В любом случае, я попытаюсь следовать твоей идее. Комментарии приветствуются. – Luixv