Ir ao conteúdo
  • Cadastre-se

Ajuda nessa agregração com SUM


Posts recomendados

Sou novo em banco de dados estou com problema nessa sum.

Ela não mostra nada.

create table livro(	isbn integer ,	nome_livro  varchar(30) ,	cod_editora	integer,	qtdlivros integer ,	cod_assunto	integer);create table editora(	cod_editora integer ,	nome_editora varchar(30) );create table assunto(	cod_assunto	integer,	nome varchar (30)		);--criaçao de chave primariaalter table assunto add constraint "pkAssunto" primary key ("cod_assunto");alter table livro add constraint "pklivro" primary key ("isbn");alter table editora add constraint "pkeditora" primary key ("cod_editora");--criaçao de chave estrangeiraalter table livro add constraint "fkEditoraLivro"	foreign key ("cod_editora") REFERENCES editora ("cod_editora");alter table livro add constraint "fkAssuntoLivro"	foreign key ("cod_assunto") REFERENCES assunto ("cod_assunto");--insetinsert into editora (cod_editora,nome_editora) values (1,'Abril');insert into editora (cod_editora,nome_editora) values (2,'Globo');insert into editora (cod_editora,nome_editora) values (3,'Saraiva');insert into assunto (cod_assunto,nome) values (1,'infantil');insert into assunto (cod_assunto,nome) values (2,'tecnologia');insert into assunto (cod_assunto,nome) values (3,'adulto');insert into assunto (cod_assunto,nome) values (4,'teen');insert into assunto (cod_assunto,nome) values (5,'gerais');insert into assunto (cod_assunto,nome) values (6,'Humor');insert into livro(isbn,nome_livro,cod_editora,cod_assunto,qtdlivros) values (1,'branca de neve',1,1,20);insert into livro(isbn,nome_livro,cod_editora,cod_assunto,qtdlivros) values (2,'Harry potter',1,4,30);insert into livro(isbn,nome_livro,cod_editora,cod_assunto,qtdlivros) values (3,'tecmundo',1,2,100);insert into livro(isbn,nome_livro,cod_editora,cod_assunto,qtdlivros) values (4,'playboy',2,3,10);insert into livro(isbn,nome_livro,cod_editora,cod_assunto,qtdlivros) values (5,'exame',3,5,40);insert into livro(isbn,nome_livro,cod_editora,cod_assunto,qtdlivros) values (6,'arte de guerra',2,5,20);insert into livro(isbn,nome_livro,cod_editora,cod_assunto,qtdlivros) values (7,'Harry potter',1,4,30);--Quantidade de livro por editora fazer dpsSELECT nome_editora, sum(qtdlivros)-- conta o valor total From Editora E,Livro LWhere nome_editora = cod_editoraGroup By nome_editora
Link para o comentário
Compartilhar em outros sites

  • Moderador

 

 

Só sei que esse FROM com várias tabelas, eu daria um soco em quem fizesse isso aqui na empresa ^^

 

Use LEFT JOIN, INNER JOIN, etc... ^^

 

Não é bem assim. Não há nada de errado em utilizar mais de uma tabela no FROM. eu mesmo.. no meu TCC fui obrigado a utilizar mais de uma tabela no FROM para evitar dados repetidos na consulta.

Um detalhe: o inner join só funciona SE e somente SE o engine da tabela for do tipo  innoDB.

Link para o comentário
Compartilhar em outros sites

Concordo DIF, não há nada de errado, só não acho "legal" por assim dizer, bem como alguns colocam condições secundárias no JOIN, e outros preferem fazer isso no where... frescuras a parte.

 

E quanto ao INNER JOIN, ele funciona perfeitamente em MYISAM também. (só conheço innodb e myisam, então quanto a outros engines não posso afirmar)

Link para o comentário
Compartilhar em outros sites

  • Moderador

Tanto @smarthome como, @Erciley Junior estão corretos.

Mas no schema do @fdsmello  está com erro grotesco, o que é normal em iniciantes.

 

veja estas linhas:

--criaçao de chave primariaalter table assunto add constraint "pkAssunto" primary key ("cod_assunto");alter table livro add constraint "pklivro" primary key ("isbn");alter table editora add constraint "pkeditora" primary key ("cod_editora");--criaçao de chave estrangeiraalter table livro add constraint "fkEditoraLivro"	foreign key ("cod_editora") REFERENCES editora ("cod_editora");alter table livro add constraint "fkAssuntoLivro"	foreign key ("cod_assunto") REFERENCES assunto ("cod_assunto");

Como pode ver,  você está colocando entre aspas, os campos.  faça desta maneira:

alter table assunto add constraint pkAssunto primary key (cod_assunto);alter table livro add constraint pklivro primary key (isbn);alter table editora add constraint pkeditora primary key (cod_editora);alter table livro add constraint fkEditoraLivroforeign key (cod_editora) REFERENCES editora (cod_editora);alter table livro add constraint fkAssuntoLivroforeign key (cod_assunto) REFERENCES assunto (cod_assunto);

 

Agora teste a instrução SQL passada por @Erciley Junior

 

Veja o exemplo funcionando:  http://sqlfiddle.com/#!2/ce2ca/1

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...