Consultas

From Grupo1 Ahand

Revision as of 07:53, 16 December 2006 by Unicamp fabiano (Talk | contribs)

Consultar livro por autor

 SELECT
   liv_titulo, 
   liv_edicao, 
   liv_paginas
 FROM
   LIVRO
 WHERE
   liv_autor = 'Ivor Horton'

S ⇐ σ (liv_autor = 'Ivor Horton') (LIVRO)
π liv_titulo, liv_edicao, liv_paginas (S)

Consultar livro por tema

 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

 Select SUM(ipe_quantidade), liv_id
 From ITEM_PEDIDO
 Group By liv_id

Consultar livros de seus respectivos fornecedores

 Select cad.cad_nome , liv.liv_titulo from CADASTRO cad , LIVRO liv
 Where cad.cad_id In (Select cadastro_cad_id From LIVRO Where cad.cad_id = cadastro_cad_id)

Livros mais vendidos por período

 SELECT
   b.livro_liv_id,
   c.liv_titulo,
   SUM(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
   b.livro_liv_id,
   c.liv_titulo
 ORDER BY
   SUM(quantidade) DESC

Clientes inativos por mais de 6 meses

 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

 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

 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)
Personal tools