1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

trabalho de sql

Boa tarde pessoal tem como vocês m ajudarem nesses exercícios não estou conseguindo. Desde já agradeço

create database loja;
USE loja;

CREATE TABLE IF NOT EXISTS `vendedor` (
  `codVendedor` int(11) NOT NULL,
  `NomeVendedor` varchar(50) NOT NULL,
  PRIMARY KEY (`codVendedor`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `vendedor` (`codVendedor`, `NomeVendedor`) VALUES
    (1, 'João'),
    (2, 'Maria'),
    (3, 'José'),
    (4, 'Pedro'),
    (5, 'Antônio'),
    (6, 'César'),
    (7, 'Ernani');
    (8, 'Lucas');

CREATE TABLE IF NOT EXISTS `cliente` (
  `codCliente` int(11) NOT NULL,
  `cpf` char(11) NOT NULL,
  `nome` varchar(50) NOT NULL,
  `endereco` varchar(200) NOT NULL,
  PRIMARY KEY (`codCliente`),
  UNIQUE KEY `cpf_UNIQUE` (`cpf`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `cliente` (`codCliente`, `cpf`, `nome`, `endereco`) VALUES
    (1, '12345678911', 'Cliente 01', 'Rua 001'),
    (2, '12345678912', 'Cliente 02', 'Rua 002'),
    (3, '12345678913', 'Cliente 03', 'Rua 003'),
    (4, '12345678914', 'Cliente 04', 'Av. 003'),
    (5, '12345678915', 'Cliente 05', 'Av. 005');

CREATE TABLE IF NOT EXISTS `produto` (
  `codProduto` int(11) NOT NULL,
  `descricao` varchar(50) NOT NULL,
  `precocusto` decimal(10,2) NOT NULL,
  `precovenda` decimal(10,2) NOT NULL,
  PRIMARY KEY (`codProduto`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `produto` (`codProduto`, `descricao`, `precocusto`, `precovenda`) VALUES
    (1, 'Caneta', 0.40, 1.90),
    (2, 'Lápis', 0.10, 1.00),
    (3, 'Capacete', 40.00, 90.00),
    (4, 'Mesa', 400.00, 700.00),
    (5, 'TV', 345.00, 690.00),
    (6, 'PenDrive', 20.00, 60.00),
    (7, 'Espelho', 300.00, 1000.00),
    (8, 'DVD', 40.00, 100.00),
    (9, 'Tênis', 39.00, 110.00),
    (10, 'Cobertor', 30.00, 45.00);
CREATE TABLE IF NOT EXISTS `venda` (
  `codVenda` int(11) NOT NULL,
  `dataVenda` date NOT NULL,
  `observacao` varchar(400) DEFAULT NULL,
  `codVendedor` int(11) NOT NULL,
  `codCliente` int(11) NOT NULL,
  PRIMARY KEY (`codVenda`),
  KEY `fk_Venda_Vendedor` (`codVendedor`),
  KEY `fk_Venda_cliente1` (`codCliente`),
  CONSTRAINT `fk_Venda_cliente1` FOREIGN KEY (`codCliente`) REFERENCES `cliente` (`codCliente`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `fk_Venda_Vendedor` FOREIGN KEY (`codVendedor`) REFERENCES `vendedor` (`codVendedor`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `venda` (`codVenda`, `dataVenda`, `observacao`, `codVendedor`, `codCliente`) VALUES
    (1, '2012-01-01', NULL, 1, 3),
    (2, '2012-01-01', '', 2, 3),
    (3, '2012-01-08', NULL, 3, 4),
    (4, '2012-02-01', NULL, 1, 1),
    (5, '2012-04-01', NULL, 4, 3),
    (6, '2012-04-10', NULL, 2, 1),
    (7, '2012-06-10', NULL, 5, 2);
CREATE TABLE IF NOT EXISTS `vendaitem` (
  `codProduto` int(11) NOT NULL,
  `codVenda` int(11) NOT NULL,
  `precocusto` decimal(10,2) DEFAULT NULL,
  `precovenda` decimal(10,2) DEFAULT NULL,
  `quantidade` decimal(10,3) NOT NULL,
  PRIMARY KEY (`codProduto`,`codVenda`),
  KEY `fk_Produto_has_Venda_Venda1` (`codVenda`),
  KEY `fk_Produto_has_Venda_Produto1` (`codProduto`),
  CONSTRAINT `fk_Produto_has_Venda_Produto1` FOREIGN KEY (`codProduto`) REFERENCES `produto` (`codProduto`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `fk_Produto_has_Venda_Venda1` FOREIGN KEY (`codVenda`) REFERENCES `venda` (`codVenda`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `vendaitem` (`codProduto`, `codVenda`, `precocusto`, `precovenda`, `quantidade`) VALUES
    (1, 1, 0.40, 1.90, 5.000),
    (1, 2, 0.40, 1.90, 59.000),
    (2, 2, 0.10, 1.00, 59.000),
    (3, 1, 40.00, 90.00, 5.000),
    (3, 2, 40.00, 90.00, 59.000),
    (3, 4, 40.00, 90.00, 2.000),
    (3, 5, 40.00, 90.00, 2.000),
    (4, 2, 400.00, 700.00, 59.000),
    (4, 4, 400.00, 700.00, 2.000),
    (4, 5, 400.00, 700.00, 2.000),
    (4, 6, 400.00, 700.00, 4.000),
    (5, 2, 345.00, 690.00, 59.000),
    (5, 4, 345.00, 690.00, 2.000),
    (5, 5, 345.00, 690.00, 2.000),
    (5, 6, 345.00, 690.00, 4.000),
    (6, 2, 20.00, 60.00, 59.000),
    (6, 3, 20.00, 60.00, 20.000),
    (6, 4, 20.00, 60.00, 2.000),
    (6, 5, 20.00, 60.00, 2.000),
    (6, 6, 20.00, 60.00, 4.000),
    (7, 2, 300.00, 1000.00, 59.000),
    (7, 3, 300.00, 1000.00, 20.000),
    (7, 4, 300.00, 1000.00, 2.000),
    (7, 5, 300.00, 1000.00, 2.000),
    (7, 6, 300.00, 1000.00, 4.000),
    (7, 7, 300.00, 1000.00, 2.000),
    (8, 2, 40.00, 100.00, 59.000),
    (8, 3, 40.00, 100.00, 20.000),
    (8, 4, 40.00, 100.00, 2.000),
    (8, 5, 40.00, 100.00, 2.000),
    (8, 6, 40.00, 100.00, 4.000),
    (8, 7, 40.00, 100.00, 2.000),
    (9, 2, 39.00, 110.00, 59.000),
    (9, 3, 39.00, 110.00, 20.000),
    (9, 4, 39.00, 110.00, 2.000),
    (9, 5, 39.00, 110.00, 2.000),
    (9, 6, 39.00, 110.00, 4.000),
    (9, 7, 39.00, 110.00, 2.000),
    (10, 2, 30.00, 45.00, 59.000),
    (10, 3, 30.00, 45.00, 20.000),
    (10, 4, 30.00, 45.00, 2.000),
    (10, 5, 30.00, 45.00, 2.000),
    (10, 6, 30.00, 45.00, 4.000),
    (10, 7, 30.00, 45.00, 2.000);
/*1 Exibir a soma de vendas por vendedor, nome, quantidade e valor;*/
select vendedor.codvendedor,
vendedor.NomeVendedor,
sum(vendaitem.quantidade),
sum(vendaitem.quantidade*vendaitem.precovenda)
from venda
inner join vendedor
on venda.codvendedor=vendedor.codvendedor
inner join vendaitem
on venda.codvenda=vendaitem.codvenda
group by vendedor.codVendedor,
vendedor.nomevendedor;
/*2 Exibir a soma de compras por cliente, nome, quantidade e valor;*/
select cliente.codcliente,
cliente.Nome,
sum(vendaitem.quantidade),
sum(vendaitem.quantidade*vendaitem.precovenda)
from venda
inner join cliente
on venda.codcliente=cliente.codcliente
inner join vendaitem
on venda.codvenda=vendaitem.codvenda
group by cliente.codcliente,
cliente.nome;
/*3 Exibir o valor médio de vendas por dia exibindo os dias de maior venda primeiro;*/
select datavenda,
avg (vendaitem.quantidade*vendaitem.precovenda)
from venda
inner join vendaitem
on venda.codvenda=vendaitem.codvenda
group by datavenda
order by avg (vendaitem.quantidade*vendaitem.precovenda)desc
/*4  Exibir o valor da maior venda realizada*/
select max (precoVenda * quantidade)
from venda item
/*5 Exibir a data da primeira venda realizada*/
select min (datavenda) from venda;
/*6 Exibir o nome do vendedor e a média de vendas, de todos que ficaram com média menor que 200*/
select nomevendedor, avg (precovenda * quantidade)
from venda
inner join vendaitem
on venda.codvenda = vendaitem.codvenda
inner join vendedor
on venda.codvendedor = vendedor.codvendedor
group by vendedor.codvendedor,nomevendedor
having avg (precovenda * quantidade) < 10
/*7 Exibir a média de vendas do mês de Janeiro*/
select avg (vendaitem.quantidade * vendaitem.precovenda)
from venda
inner join vendaitem on venda.codvenda = vendaitem.codvenda
where month (venda.datavenda) = 01;
/*8  Exibir a média de lucro de cada mês */
select month (datavenda),
avg (prcovenda * quantidade -
 precocusto * quantidade)
from venda
inner join vendaitem
on venda.codvenda = vendaitem.codvenda
group by month (datavenda)
/*9 Exibir a quantidade de compra já realizadas por cada cliente*/
select cliente.codcliente,
nome,
count(codvenda)
from venda
inner join cliente
on venda.codcliente=clientecodcliente
group by cliente.codcliente,nome
/*
1) Trazer o nome dos vendedores que não realizaram nenhuma venda. 
2) Trazer o nome dos clientes realizaram mais de uma compra. 
3) Exibir a descrição do produto, nome do produto e a diferença entre o 
lucro obtido por este produto e a média de lucratividade de todos os produtos. 
4) Exibir a lista de todos os clientes que já compraram caneta ou lápis.
5) Atualizar o preço de venda de todos os produtos que estão com preço venda abaixo 
da média para o preço médio de venda. 
6) Excluir todos os produtos que nunca foram vendidos.
7) Excluir todas as vendas do vendedor 4.
 */
/*1*/
select NomeVendedor, codVenda, venda.codVendedor
from vendedor
inner join venda on vendedor.codVendedor = venda.codVendedor
where vendedor.codVenda not in 

/*2*/
select nome, COUNT(cliente.codCliente) AS 'Total Compra'
from cliente
inner join venda on cliente.codCliente = venda.codCliente
group by nome 
having count(cliente.codCliente) > 1

/*4*/
select descricao, produto.codProduto
from produto
inner join vendaitem on produto.codProduto = vendaitem.codProduto
where (produto.codProduto = 1 or produto.codProduto = 2) in
  • cara primeiro, tenta coloca toda a parte do codigo entre aspas, que ele rá ficar distacado como um codigo, e os erros você coloca em baixo por que não achei eles.

    paulo victor   25 de mai de 2014
  • 1) faça todas as tabelas , insere todos os dados , conforme você passou na sua pergunta.

    Pois não adianta colocar esse tipo de pergunta aqui, ainda mais sendo trabalho de curso / faculdade. Se alguém fizer por você , não ira aprender e na hora da prova vai tira uma nota inferior.

    Você está com tudo na mão , basta fazer algumas pesquisas no que você não entende, mas tenta fazer.

    valeu . #FicaDica

    Daniel Dias   25 de mai de 2014
  • @paulo victor, não tem erro nenhum , isso é uma lista de exercícios.

    Daniel Dias   25 de mai de 2014
  • Melhor ir colocando as dúvidas na medida em que você for resolvendo as questões. Fazendo por partes há mais chances de aprender melhor e mais facilmente.

    lucastody   25 de mai de 2014
  • mais um post de "faça meu trabalho de casa!" ... cara este exercício é para você fixar o conhecimento e treinar sua percepção de problema, cenário e solução ...

    marco_aurelioo   26 de mai de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags mysql ou faça a sua própria pergunta.