Procura

Banco de dadosSql


EXERCÍCIOS - Exercício 313

  • (CESGRANRIO 2014)

As tabelas abaixo pertencem ao esquema de um banco de dados de um supermercado.
CREATE TABLE PRODUTO (
COD NUMBER(5) NOT NULL,
DESCRICAO VARCHAR2(100) NOT NULL,
PRECO NUMBER(8,2) NOT NULL,
QTD_ESTOQUE NUMBER(5) ,
TIPO NUMBER(1) NOT NULL,
CONSTRAINT PRODUTO_PK PRIMARY KEY (COD))
CREATE TABLE ITEM (
NUM_SERIE NUMBER(7) NOT NULL,
COR VARCHAR2(20) NOT NULL,
VOLTAGEM NUMBER(5) NOT NULL,
COD_PROD NUMBER(5) NOT NULL,
CONSTRAINT ITEM_PK PRIMARY KEY (NUM_SERIE),
CONSTRAINT ITEM_FK FOREIGN KEY (COD_PROD)
REFERENCES PRODUTO (COD))
Observações:
• A empresa comercializa produtos controlados por quantidade (por exemplo, caixa de sabão em pó, pacote de biscoito e lata de extrato de tomate) e produtos controlados por unidade (por exemplo, televisor, máquina de lavar roupa e liquidificador).
• A quantidade em estoque de um produto controlado por quantidade (TIPO=1) é obtida diretamente da coluna QTD_ESTOQUE.
• A quantidade em estoque de um produto controlado por unidade (TIPO=2) NÃO pode ser obtida diretamente da coluna QTD_ESTOQUE, pois, para esse tipo de produto, esta coluna irá conter o valor NULL.
• Cada linha da tabela ITEM contém informações sobre um item existente no estoque da empresa relativo a um tipo de produto controlado por unidade.

Qual consulta SQL irá exibir o código, a descrição e a quantidade em estoque relativos a cada um dos produtos comercializados pelo supermercado?


A) SELECT COD, DESCRICAO, QTD_ESTOQUE
FROM PRODUTO
WHERE TIPO = 1
UNION
SELECT P.COD, P.DESCRICAO, COUNT(I.COD_PROD)
FROM PRODUTO P,ITEM I
WHERE TIPO = 2 AND P.COD=I.COD_PROD
GROUP BY P.COD, P.DESCRICAO


B) SELECT COD, DESCRICAO, QTD_ESTOQUE
FROM PRODUTO
WHERE TIPO = 1
UNION
SELECT P.COD, P.DESCRICAO, COUNT(I.COD_PROD)
FROM PRODUTO P
LEFT JOIN ITEM I
ON P.COD=I.COD_PROD
WHERE P.TIPO = 2
GROUP BY P.COD, P.DESCRICAO


C) SELECT P.COD, P.DESCRICAO, COUNT(DISTINCT P.TIPO)
FROM PRODUTO P
LEFT OUTER JOIN ITEM I
ON P.COD=I.COD_PROD
GROUP BY P.COD, P.DESCRICAO


D) SELECT P.COD, P.DESCRICAO, SUM (DISTINCT P.TIPO)
FROM PRODUTO P
INNER JOIN ITEM I
ON P.COD=I.COD_PROD
GROUP BY P.COD, P.DESCRICAO


E) SELECT COD, DESCRICAO, QTD_ESTOQUE
FROM PRODUTO
WHERE TIPO = 1
UNION
SELECT P.COD, P.DESCRICAO, COUNT(I.COD_PROD)
FROM PRODUTO P
RIGHT JOIN ITEM I
ON P.COD=I.COD_PROD
WHERE P.TIPO = 2
GROUP BY P.COD,P.DESCRICAO



Próximo:
EXERCÍCIOS - Exercício 314

Vamos para o Anterior: Exercício 312

Tente Este: Exercício 454

Primeiro: Exercício 1

VOLTAR ao índice: Banco de dados






Cadastre-se e ganhe o primeiro capítulo do livro.
+
((ts_substr_ig=0.00ms))((ts_substr_id=2.30ms))((ts_substr_m2=0.00ms))((ts_substr_p2=0.56ms))((ts_substr_c=1.67ms))((ts_substr_im=1.04ms))
((total= 6ms))