Consultas
From Grupo1 Ahand
(37 intermediate revisions not shown) | |||
Line 1: | Line 1: | ||
- | + | = Consultar livro por autor = | |
- | + | ||
- | + | ||
- | + | ||
- | + | * Álgebra relacional | |
- | '' | + | S ⇐ σ <small>(liv_autor = 'Ivor Horton')</small> (LIVRO) <br> |
- | + | R ⇐ π <small>liv_titulo, liv_edicao, liv_paginas</small> (S) | |
- | + | ||
- | + | ||
- | + | ||
- | + | * SQL | |
- | + | SELECT | |
- | + | liv_titulo, | |
- | + | liv_edicao, | |
- | + | liv_paginas | |
+ | FROM | ||
+ | LIVRO | ||
+ | WHERE | ||
+ | liv_autor = 'Ivor Horton' | ||
- | + | = Consultar livro por tema = | |
- | '' | + | * Álgebra relacional |
- | + | ||
- | + | S ⇐ LIVRO ►◄ <small>tem_id = tem_id</small> TEMA <br> | |
- | + | R ⇐ π <small>liv_titulo, liv_edicao, liv_paginas</small> (S) | |
+ | |||
+ | * SQL | ||
+ | |||
+ | SELECT | ||
+ | L.liv_titulo, | ||
+ | L.liv_edicao, | ||
+ | L.liv_paginas | ||
+ | FROM | ||
+ | LIVRO L, | ||
+ | TEMA T | ||
+ | WHERE | ||
+ | L.tem_id = T.tem_id | ||
+ | AND T.tem_descricao like '%Java%' | ||
+ | |||
+ | = Consultar quantidade de livros pedidos = | ||
+ | |||
+ | * Álgebra relacional | ||
+ | |||
+ | S ⇐ σ (ITEM_PEDIDO) <br> | ||
+ | R(liv_id, quantidade) ⇐ liv_id F <small>SUM(ipe_quantidade)</small> (S) | ||
+ | |||
+ | * SQL | ||
+ | |||
+ | SELECT | ||
+ | SUM(ipe_quantidade) as quantidade, | ||
+ | liv_id | ||
+ | FROM | ||
+ | ITEM_PEDIDO | ||
+ | GROUP BY | ||
+ | liv_id | ||
+ | |||
+ | = Consultar livros de seus respectivos fornecedores = | ||
+ | |||
+ | * Álgebra relacional | ||
+ | |||
+ | S ⇐ CADASTRO ►◄ <small>cad_id = cadastro_cad_id</small> LIVRO <br> | ||
+ | R ⇐ π <small>cad_nome, liv_titulo</small> (S) | ||
+ | |||
+ | * SQL | ||
+ | |||
+ | SELECT | ||
+ | cad.cad_nome, | ||
+ | liv.liv_titulo | ||
+ | FROM | ||
+ | CADASTRO cad, | ||
+ | LIVRO liv | ||
+ | WHERE | ||
+ | cad.cad_id = liv.cadastro_cad_id | ||
+ | |||
+ | = Livros mais vendidos por período = | ||
+ | |||
+ | * Álgebra relacional | ||
+ | |||
+ | S ⇐ σ <small>(ped_data >= :data_inicial AND ped_data <= data_final)</small> (PEDIDO) <br> | ||
+ | T ⇐ S ►◄ <small>pedido_ped_id = ped_id</small> ITEM_PEDIDO <br> | ||
+ | U ⇐ T ►◄ <small>liv_id = livro_liv_id</small> LIVRO <br> | ||
+ | R(liv_id, liv_titulo, quantidade) ⇐ liv_id, liv_titulo F <small>SUM(ipe_quantidade)</small> (U) | ||
+ | |||
+ | * SQL | ||
+ | |||
+ | SELECT | ||
+ | c.liv_id, | ||
+ | c.liv_titulo, | ||
+ | SUM(b.ipe_quantidade) AS quantidade | ||
+ | FROM | ||
+ | pedido a | ||
+ | INNER JOIN item_pedido b ON b.pedido_ped_id = a.ped_id | ||
+ | INNER JOIN livro c ON c.liv_id = b.livro_liv_id | ||
+ | WHERE | ||
+ | a.ped_data BETWEEN :data_inicial AND :data_final | ||
+ | GROUP BY | ||
+ | c.liv_id, | ||
+ | c.liv_titulo | ||
+ | ORDER BY | ||
+ | SUM(b.ipe_quantidade) DESC | ||
+ | |||
+ | = Clientes inativos por mais de 6 meses = | ||
+ | |||
+ | * Álgebra relacional | ||
+ | |||
+ | S ⇐ σ <small>(tipo_cadastro_tca_id = 1)</small> (CADASTRO) <br> | ||
+ | T ⇐ σ <small>(ped_data > CURRENT_DATE - 180)</small> (PEDIDO) <br> | ||
+ | U ⇐ T ►◄ <small>cadastro_cad_id = cad_id</small> CADASTRO <br> | ||
+ | V ⇐ π <small>cad_id, cad_nome</small> (U) <br> | ||
+ | W ⇐ π <small>cad_id, cad_nome</small> (S) <br> | ||
+ | R ⇐ W - V | ||
+ | |||
+ | * SQL | ||
+ | |||
+ | SELECT | ||
+ | a.cad_nome | ||
+ | FROM | ||
+ | cadastro a | ||
+ | WHERE | ||
+ | (a.tipo_cadastro_tca_id = 1) | ||
+ | AND NOT EXISTS ( | ||
+ | SELECT | ||
+ | * | ||
+ | FROM | ||
+ | pedido w1 | ||
+ | WHERE | ||
+ | (w1.ped_data > CURRENT_DATE - 180) | ||
+ | AND (w1.cadastro_cad_id = a.cad_id) ) | ||
+ | |||
+ | = Solicitações não atendidas = | ||
+ | |||
+ | * SQL | ||
+ | |||
+ | SELECT | ||
+ | a.sol_id, | ||
+ | a.sol_numero, | ||
+ | a.sol_data, | ||
+ | b.iso_quantidade, | ||
+ | c.ate_quantidade AS quantidade_pedido | ||
+ | FROM | ||
+ | solicitacao a | ||
+ | INNER JOIN item_solicitacao b ON b.solicitacao_sol_id = a.sol_id | ||
+ | LEFT JOIN atende c ON c.item_solicitacao_sol_id = a.sol_id AND c.item_solicitacao_livro_liv_id = b.livro_liv_id | ||
+ | WHERE | ||
+ | (c.ate_quantidade IS NULL OR c.ate_quantidade < b.iso_quantidade) | ||
+ | ORDER BY | ||
+ | a.sol_data, | ||
+ | a.sol_id | ||
+ | |||
+ | = Vendas mensais = | ||
+ | |||
+ | * SQL | ||
+ | |||
+ | SELECT | ||
+ | EXTRACT(MONTH FROM a.ped_data) AS mes, | ||
+ | SUM(b.ipe_valor_total) total_vendido | ||
+ | FROM | ||
+ | pedido a | ||
+ | INNER JOIN item_pedido b ON b.pedido_ped_id = a.ped_id | ||
+ | WHERE | ||
+ | a.ped_data BETWEEN :data_inicial AND :data_final | ||
+ | GROUP BY | ||
+ | EXTRACT(MONTH FROM a.ped_data) |
Current revision as of 01:33, 21 December 2006
Contents |
Consultar livro por autor
- Álgebra relacional
S ⇐ σ (liv_autor = 'Ivor Horton') (LIVRO)
R ⇐ π liv_titulo, liv_edicao, liv_paginas (S)
- SQL
SELECT liv_titulo, liv_edicao, liv_paginas FROM LIVRO WHERE liv_autor = 'Ivor Horton'
Consultar livro por tema
- Álgebra relacional
S ⇐ LIVRO ►◄ tem_id = tem_id TEMA
R ⇐ π liv_titulo, liv_edicao, liv_paginas (S)
- SQL
SELECT L.liv_titulo, L.liv_edicao, L.liv_paginas FROM LIVRO L, TEMA T WHERE L.tem_id = T.tem_id AND T.tem_descricao like '%Java%'
Consultar quantidade de livros pedidos
- Álgebra relacional
S ⇐ σ (ITEM_PEDIDO)
R(liv_id, quantidade) ⇐ liv_id F SUM(ipe_quantidade) (S)
- SQL
SELECT SUM(ipe_quantidade) as quantidade, liv_id FROM ITEM_PEDIDO GROUP BY liv_id
Consultar livros de seus respectivos fornecedores
- Álgebra relacional
S ⇐ CADASTRO ►◄ cad_id = cadastro_cad_id LIVRO
R ⇐ π cad_nome, liv_titulo (S)
- SQL
SELECT cad.cad_nome, liv.liv_titulo FROM CADASTRO cad, LIVRO liv WHERE cad.cad_id = liv.cadastro_cad_id
Livros mais vendidos por período
- Álgebra relacional
S ⇐ σ (ped_data >= :data_inicial AND ped_data <= data_final) (PEDIDO)
T ⇐ S ►◄ pedido_ped_id = ped_id ITEM_PEDIDO
U ⇐ T ►◄ liv_id = livro_liv_id LIVRO
R(liv_id, liv_titulo, quantidade) ⇐ liv_id, liv_titulo F SUM(ipe_quantidade) (U)
- SQL
SELECT c.liv_id, c.liv_titulo, SUM(b.ipe_quantidade) AS quantidade FROM pedido a INNER JOIN item_pedido b ON b.pedido_ped_id = a.ped_id INNER JOIN livro c ON c.liv_id = b.livro_liv_id WHERE a.ped_data BETWEEN :data_inicial AND :data_final GROUP BY c.liv_id, c.liv_titulo ORDER BY SUM(b.ipe_quantidade) DESC
Clientes inativos por mais de 6 meses
- Álgebra relacional
S ⇐ σ (tipo_cadastro_tca_id = 1) (CADASTRO)
T ⇐ σ (ped_data > CURRENT_DATE - 180) (PEDIDO)
U ⇐ T ►◄ cadastro_cad_id = cad_id CADASTRO
V ⇐ π cad_id, cad_nome (U)
W ⇐ π cad_id, cad_nome (S)
R ⇐ W - V
- SQL
SELECT a.cad_nome FROM cadastro a WHERE (a.tipo_cadastro_tca_id = 1) AND NOT EXISTS ( SELECT * FROM pedido w1 WHERE (w1.ped_data > CURRENT_DATE - 180) AND (w1.cadastro_cad_id = a.cad_id) )
Solicitações não atendidas
- SQL
SELECT a.sol_id, a.sol_numero, a.sol_data, b.iso_quantidade, c.ate_quantidade AS quantidade_pedido FROM solicitacao a INNER JOIN item_solicitacao b ON b.solicitacao_sol_id = a.sol_id LEFT JOIN atende c ON c.item_solicitacao_sol_id = a.sol_id AND c.item_solicitacao_livro_liv_id = b.livro_liv_id WHERE (c.ate_quantidade IS NULL OR c.ate_quantidade < b.iso_quantidade) ORDER BY a.sol_data, a.sol_id
Vendas mensais
- SQL
SELECT EXTRACT(MONTH FROM a.ped_data) AS mes, SUM(b.ipe_valor_total) total_vendido FROM pedido a INNER JOIN item_pedido b ON b.pedido_ped_id = a.ped_id WHERE a.ped_data BETWEEN :data_inicial AND :data_final GROUP BY EXTRACT(MONTH FROM a.ped_data)