Je travaille sur quelques extensions de Gerrit. J'ai la requête suivante pour obtenir les COMMUTATIONS TOTALES, COMMENTAIRES TOTOAL d'examen ... etc. pour un ACCOUNT_ID particulier de la DB de gerrit.Exécuter une requête de compte pour chaque compte
with
changeids as
(select change_id from PATCH_SETS where UPLOADER_ACCOUNT_ID=1001961),
patchcommentstoothers as
(select count(*) c from patch_comments where AUTHOR_ID!=1001961 AND Change_id in (select change_id from changeids)),
ownerchanges as
(select count(*) c from changes where owner_account_ID=1001961 and OPEN='Y'),
changemessages as
(select count(*) c from change_messages where AUTHOR_ID=1001961 and change_id not in (select change_id from changeids))
select pcto.c TOT_PATCH_COMMENTS, oc.c TOT_CHANGES, cm.c TOT_CHANGE_MESSAGES
from patchcommentstoothers pcto, ownerchanges oc, changemessages cm;
Maintenant, avec la requête ci-dessus, je peux obtenir les trois comptes pour un utilisateur. Je veux exécuter la requête ci-dessus pour tous les ACCOUNT_ID. Quelque chose comme exécuter cette requête pour chaque compte (pas seulement pour 1001961 ici) et récupérer tous les enregistrements en une seule fois pour tous les comptes.
table CONSIDERATION les colonnes suivantes:
"REGISTERED_ON" TIMESTAMP (6) NOT NULL ENABLE,
"FULL_NAME" VARCHAR2(255 BYTE),
"PREFERRED_EMAIL" VARCHAR2(255 BYTE),
"CONTACT_FILED_ON" TIMESTAMP (6),
"MAXIMUM_PAGE_SIZE" NUMBER(6,0) DEFAULT 0,
"SHOW_SITE_HEADER" CHAR(1 BYTE) DEFAULT 'N',
"USE_FLASH_CLIPBOARD" CHAR(1 BYTE) DEFAULT 'N',
"DOWNLOAD_URL" VARCHAR2(20 BYTE),
"DOWNLOAD_COMMAND" VARCHAR2(20 BYTE),
"COPY_SELF_ON_EMAIL" CHAR(1 BYTE) DEFAULT 'N',
"DATE_FORMAT" VARCHAR2(10 BYTE),
"TIME_FORMAT" VARCHAR2(10 BYTE),
"INACTIVE" CHAR(1 BYTE) DEFAULT 'N',
"ACCOUNT_ID" NUMBER(11,0) DEFAULT 0
Je préférerais ne pas utiliser les procédures.
P.S. - Je crains pour Oracle SQL.
Ne pas citer explicitement les colonnes lors de la création de tables/vues, etc. Cela cause plus de problèmes que cela en vaut la peine. Si vous ne les citez pas, tout est supposé être en majuscules (quelle que soit la façon dont vous les tapez) et vous n'avez pas besoin de faire quoi que ce soit. Cela économise aussi beaucoup de frappe. – Ben