Ir para conteúdo
Fórum Script Brasil
  • 0

estudante de Sistema iniciando em banco de dados exercício !


gustavoegino

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0

Olá Gustavo, as questões acima são realmente básicas e se você realmente deseja ingressar no mundo dos sistemas, sugiro que não pule estas aulas e aprenda de verdade.

Caso você tenha uma boa relação com a língua inglesa, comece por este tutorial: http://www.w3schools.com/sql/default.asp. Acredito que em 4h dedicadas, você consiga fazê-lo na íntegra.

Senão, recomendo estas vídeo aulas: http://dev.rbtech.info/curso-de-sql-para-iniciantes-aula-1/ (eu particularmente não tenho saco pra vídeo aulas).

Se você for oldstyle e preferir o papel na mão: http://sistemas.riopomba.ifsudestemg.edu.br/dcc/materiais/833034638_apostila-sql.PDF. Tem um pouco mais de teoria antes de entrar na parte prática, mas é excelente.

As três opções são voltadas para o SQL genérico, que se aplica como via de regra a todos os bancos de dados populares. Caso queira um pouco mais de informações, pode revirar a biblioteca pública daqui do Scriptbrasil na divisão sobre banco de dados: https://www.scriptbrasil.com.br/apostilas/bd/

É importante lembrar que os fóruns estão aí para te ajudar a aprender e não para fazermos por você!

Abraços e qualquer dúvida que pintar durante o processo de aprendizagem, posta aí! ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Vou tentar ajudar sem te dar a resposta... rs

Na hora de montar uma query, o pensamento deve ser lógico e simples. No exemplo do exercício 14, para montar essa consultar, basta seguir os passos do próprio enunciado:

SELECT <aqui vai o campo com nome das marcas> FROM <aqui vao as tabelas envolvidas e seus relacionamentos> WHERE <aqui vai a condição>

No caso acima, você precisa identificar em qual tabela está o campo com nome das marcas (sln4.marca) e em qual está o campo da data da venda que será utilizada no condicional (sl4.nota). Daí, você consegue saber quais as tabelas estarão envolvidas para o cruzamento das informações (sl4.nota > sl4.item > sl4.produto > sl4.marca).

No item 15, vale dar uma olhada nas seguintes palavras chave: SUM, GROUP BY e ORDER BY.

O 16 é bem intuitivo e envolve uma única tabela, com atenção especial à parte do condicional. Você pode usar qualquer condicional de comparação para retornar resultados: < > = !=

O 18 também é só seguir o exemplo do 14, que você conseguirá chegar no resultado.

Isto espera ter sido útil...

Link para o comentário
Compartilhar em outros sites

  • 0

Gigabyte você é o cara tá me ajudando muito, estou tentando fazer, peguei um pdf do livro "curso de sql pratico. prof celso"2002

vamos lá olha.

14) Mostre o nome das marcas que tiveram produtos vendidos no mês de novembro.

Select  m.nome as marca
From sin4.marca m, sin4.produto p, sin4.item i, sin4.nota n
Where m.id_marca = p.id_marca and
p.id_prod = i.id_prod and
i.id_nota = n.id_nota

15) Mostre o tipo de pagamento que mais são utilizados,mostre do maior para o menor.

Select sum(descrição)
From sin4.tipo_pagamento
Order by descrição desc

16) Mostre o nome dos tipos de produtos que estão com a quantidade menor que 10.

Select tp.tipo as nome, p.quant as quantidade
From trn4.tipo_prod tp, trn4.produto p
Where tp.id_tipo = p.id_tipo and p.quant < 10;

18) mostre o nome do cliente que pagou suas notas a vista.

Select c.nome as cliente,
From sin4.cliente c, sin4.nota n
Where c.id_cliente = n.id_cliente

11) Mostre os clientes que fizeram mais de duas compras no mês de novembro.

Select c.cliente, n.dt_nota
From trn4.cliente c, trn4.nota n
Where c.id_cliente = n.id_cliente and n.dt_nota = ‘novembro’

acredito que estejam errada algumas se não todas :D

Editado por gustavoegino
Link para o comentário
Compartilhar em outros sites

  • 0

Legal, vi que você está no caminho certo, porém apenas a 16 da lista acima está correta.

No item 14, existe uma forma mais usual para realizar a consulta, então pela primeira vez, vou te dar a resposta... mas só porque você se esforçou! :P

SELECT m.nome AS marca
FROM 
  sin4.marca AS m INNER JOIN 
  sin4.produto AS p ON (m.id_marca = p.id_marca) INNER JOIN
  sin4.item AS i ON (p.id_prod = i.id_prod) INNER JOIN 
  sin4.nota AS n ON (i.id_nota = n.id_nota)
WHERE (n.dt_nota BETWEEN '2013-11-01 00:00:00' AND '2013-11-30 23:59:59')

Minha sugestão pra você é dar uma olhada em como funciona os "JOINS". E é claro, faltou um dos itens principais na consulta... o filtro pelo mês de novembro, que na query acima, coloquei no "WHERE" utilizando o campo dt_nota.

No item 15 você comete um erro comum para quem está iniciando e mandou um "SUM" em um campo de texto.

SELECT t.descricao, COUNT(p.id_pagamento) AS quantidade
FROM sin4.tipo_pagamento AS t INNER JOIN sin4.pagamento AS p ON (p.id_tipo = t.id_tipo)
GROUP BY t.descricao
ORDER BY quantidade DESC 

Neste caso, é necessário trazer o campo com a descrição e fazer uma contagem de quantas vezes o tipo de pagamento é utilizado na tabela de pagamentos.

Com essa estrutura, já dá pra fazer uma revisão nos outros itens também.

Boa sorte!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...