SóProvas


ID
2474437
Banca
Quadrix
Órgão
CFO-DF
Ano
2017
Provas
Disciplina
Banco de Dados
Assuntos

SELECT d.nome, d.data_contratacao, c.nome, c.data_contratacao

FROM dentista d JOIN dentista c

ON (d.cro_chefe = c.cro)

WHERE d.data_contratacao < c.data_contratacao; 

A partir do código SQL (Structured Query Language) acima, julgue o item subsecutivo.

A consulta mostra o nome e a data de contratação de todos os dentistas que foram contratados antes de seus chefes, contendo ainda o nome e a data de contratação de seus chefes.

Alternativas
Comentários
  • De fato o gabarito é certo. Mas não foi tão fácil enchergar isso de primeira. Uma dica é pensar na tabela dentista com os campos apresentado na questão. 

     

    A tabela dentista teria os seguintes campos DENTISTA(CRO, NOME, DATA_CONTRATACAO, CRO_CHEFE) ou seja, para cada dentista XPTO terá o CRO de seu chefe associado a ele. E o CRO do próprio chefe está na tabela.

     

    Então poderiamos ter a seguinte situação

     

    CRO | NOME | DATA_CONTRATACAO | CRO_CHEFE

    1       | ANA    | 20/12/2016                      | 4

    2       | BOB    | 01/05/2017                      | 4

    3       | JO       | 30/10/2016                      | 4

    4       | EMY    | 02/03/2017                      | NULL

     

    Logo os nomes que seriam retornados juntamente com os demais campos seriam ANA e JO

  • Complementando a resposta de Wesley Nunes:

    CREATE TABLE dentista (

      cro              INTEGER  PRIMARY KEY,
      nome             TEXT     NOT NULL,
      data_contratacao DATE     NOT NULL,
      cro_chefe        INTEGER,
      FOREIGN KEY (cro_chefe) REFERENCES dentista (cro)  ON UPDATE CASCADE
    );