Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle - mais consultas em um resultado


Você pode obter os resultados em uma consulta usando o operador UNION. Ele não se presta a ser econômico em grandes conjuntos, mas faz o trabalho.
  • todas as consultas devem selecionar o mesmo número de colunas do mesmo tipo de dados.
  • você pode selecionar null se tiver uma coluna exclusiva em uma consulta
  • também é útil selecionar uma string indicando a origem dos dados
  • o conjunto de resultados usará apenas os nomes das colunas da primeira consulta

  • a ordenação se aplica a todo o conjunto de resultados e não a consultas individuais

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

    de Osoba, assunto

    onde osoba.ID_PATRI_DO=subjekt.ID

    grupo por subject.nazev

    UNIÃO

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

    de ZADAVACI_POSTUP,assunto

    onde ZADAVACI_POSTUP.id_zadavatel=subjekt.ID

    grupo por subject.nazev

    UNIÃO

    selecione NULL,'Aplikacni_log', sb.nazev, lg.create_uzivatel, lg.create_cas,null,null

    de Aplikacni_log lg junte-se a zadavaci_postup zp em zp.id =lg.id_zp

    junte-se ao assunto sb em sb.id =zp.id_zadavatel

    onde lg.create_cas> to_date('08.11.2014', 'DD.MM.AAAA')

    UNIÃO

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

    a partir de(

    selecione 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

    junte-se a cuzivatel u em u.id=a.id_uzivatel

    juntar osoba os em u.id_osoba_bridge =os.id

    juntar t$subjekt subj em subj.id =os.id_patri_do

    junção esquerda d$caudittyp t em t.id=a.id_audittyp

    onde datumzapisauditu entre trunc(sysdate)-7 AND trunc(sysdate)

    pedido por a.datumzapisauditu desc)

    ;