J'ai le problème SQL suivant.Groupe Oracle par et l'ensemble résultant vide
Scénario:
J'ai deux tables: Changement et ChangeTicket. Il existe une relation 1: n. Un changement a cero ou beaucoup de changeTickets. Aucun changement ne signifie pas de changement de ticket. Un ticket de change a un statut (ouvert/fermé/...) Un changement de ticket a un champ représentant combien de minutes ont pris ce changement.
Un changement a une entreprise et un mois. Il y a au plus UN changement dans le mois.
Je dois signaler pour une entreprise donnée et pour un mois donné la somme des minutes un changement donné a pris.
J'ai écrit l'instruction SQL suivante.
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
Ceci est OK.
Si pour le mois donné et la société donnée il n'y a ni changement ni ticket alors j'obtiens une valeur nulle qui est convertie en cero usgin la fonction NVL.
Le problème se pose lorsque je veux regrouper les informations en utilisant le statut. Si j'ajoute une clause de 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
alors mon résultat est l'ensemble vide. Je comprends qu'il n'y a pas d'état et que l'ensemble résultant est d'une manière ou d'une autre cohérent et qu'un ensemble résultant vide est retourné.
Comment puis-je éviter ce problème. Dans ce cas, je dois signaler un vide état de l'état et cero comme la somme.
(BTW, j'ai aussi essayé de mettre NVL (Change_Ticket.status, 'none') mais ne fonctionne pas)
Merci beaucoup à l'avance.
Luis
Merci pour votre réponse. Malheureusement, je n'ai pas de statut de table.Je n'ai qu'un statut de colonne. Quoi qu'il en soit, je vais essayer de suivre votre idée. Les commentaires sont les bienvenus. – Luixv