Consultas

From Grupo1 Ahand

(Difference between revisions)
 
(36 intermediate revisions not shown)
Line 1: Line 1:
-
''' Consultar livro por autor''' <BR><BR>
+
= Consultar livro por autor =
-
Select liv_titulo, liv_edicao, liv_paginas <BR>
+
-
From LIVRO <BR>
+
-
Where liv_autor = 'Ivor Horton' <BR>
+
-
<BR>
+
* Álgebra relacional
-
''' Consultar livro por tema''' <BR><BR>
+
S &lArr; &sigma; <small>(liv_autor = 'Ivor Horton')</small> (LIVRO) <br>
-
Select L.liv_titulo, L.liv_edicao, L.liv_paginas <BR>
+
R &lArr; &pi; <small>liv_titulo, liv_edicao, liv_paginas</small> (S)
-
From LIVRO L, TEMA T<BR>
+
-
Where L.tem_id = T.tem_id <BR>
+
-
And T.tem_descricao like '%Java%' <BR>
+
-
<BR>
+
* SQL
-
''' Consultar quantidade de livros pedidos''' <BR><BR>
+
  SELECT
-
Select SUM(ipe_quantidade), liv_id <BR>
+
    liv_titulo,  
-
From ITEM_PEDIDO <BR>
+
    liv_edicao,
-
Group By liv_id <BR>
+
    liv_paginas
 +
  FROM
 +
    LIVRO
 +
  WHERE
 +
    liv_autor = 'Ivor Horton'
-
<BR>
+
= Consultar livro por tema =
-
''' Consultar livros de seus respectivos fornecedores''' <BR><BR>
+
* Álgebra relacional
-
Select cad.cad_nome , liv.liv_titulo from CADASTRO cad , LIVRO liv <BR>
+
 
-
Where cad.cad_id In (Select cadastro_cad_id From LIVRO <BR>
+
S &lArr; LIVRO ►◄ <small>tem_id = tem_id</small> TEMA <br>
-
Where cad.cad_id = cadastro_cad_id);
+
R &lArr; &pi; <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 &lArr; &sigma; (ITEM_PEDIDO) <br>
 +
R(liv_id, quantidade) &lArr; 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 &lArr; CADASTRO ►◄ <small>cad_id = cadastro_cad_id</small> LIVRO <br>
 +
R &lArr; &pi; <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 &lArr; &sigma; <small>(ped_data >= :data_inicial AND ped_data <= data_final)</small> (PEDIDO) <br>
 +
T &lArr; S ►◄ <small>pedido_ped_id = ped_id</small> ITEM_PEDIDO <br>
 +
U &lArr; T ►◄ <small>liv_id = livro_liv_id</small> LIVRO <br>
 +
R(liv_id, liv_titulo, quantidade) &lArr; 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 &lArr; &sigma; <small>(tipo_cadastro_tca_id = 1)</small> (CADASTRO) <br>
 +
T &lArr; &sigma; <small>(ped_data > CURRENT_DATE - 180)</small> (PEDIDO) <br>
 +
U &lArr; T ►◄ <small>cadastro_cad_id = cad_id</small> CADASTRO <br>
 +
V &lArr; &pi; <small>cad_id, cad_nome</small> (U) <br>
 +
W &lArr; &pi; <small>cad_id, cad_nome</small> (S) <br>
 +
R &lArr; 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)
Personal tools