Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle - plus de requêtes dans un seul résultat

Vous pouvez obtenir les résultats dans une requête en utilisant l'opérateur UNION. Il ne se prête pas à être rentable sur de grands ensembles mais fait le travail.

  • toutes les requêtes doivent sélectionner le même nombre de colonnes du même type de données.
  • vous pouvez sélectionner null si vous avez une colonne unique dans une requête
  • il est également pratique de sélectionner une chaîne indiquant l'origine des données
  • le jeu de résultats n'utilisera que les noms des colonnes de la première requête
  • le classement s'applique à l'ensemble des résultats et non aux requêtes individuelles

    select count(*) AS R_COUNT, 'OSABA' AS SOURCE,subjekt.nazev , null, null,null,null

    de osoba, sujet

    où osoba.ID_PATRI_DO=subjekt.ID

    grouper par subjekt.nazev

    UNION

    select count(*),'ZADAVACI_POSTUP', subjekt.nazev , null, null,null,null

    de ZADAVACI_POSTUP, sujet

    où ZADAVACI_POSTUP.id_zadavatel=subjekt.ID

    grouper par subjekt.nazev

    UNION

    sélectionnez NULL,'Aplikacni_log', sb.nazev, lg.create_uzivatel, lg.create_cas,null,null

    de Aplikacni_log lg rejoindre zadavaci_postup zp sur zp.id =lg.id_zp

    joindre subjekt qn sur sb.id =zp.id_zadavatel

    où lg.create_cas> to_date('08.11.2014', 'DD.MM.YYYY')

    UNION

    select count(*) pocet,'SUBQUERY', do_dne_včetně,nazev_organizace,max(trunc(sysdate)-6) ode_dne_včetně,max(trunc(sysdate))

    de(

    sélectionnez to_char(t.popis) popis_typu,subj.nazev nazev_organizace,

    u.username,u.nazev, a.datumzapisauditu

    ,to_char(a.datumzapisauditu,'DD.MM.YYYY') datum , a.id

    de d$caudit a

    rejoindre cuzivatel u sur u.id=a.id_uzivatel

    rejoindre osoba os sur u.id_osoba_bridge =os.id

    rejoindre t$subjekt subj sur subj.id =os.id_patri_do

    jointure gauche d$caudittyp t sur t.id=a.id_audittyp

    où datumzapisauditu entre trunc(sysdate)-7 AND trunc(sysdate)

    commander par a.datumzapisauditu desc)

    ;