Duvida SQL Cadastro

11/12/2014

0

Postado Um minuto atras
create table tb_clientes(
idcliente integer primary key,
nome varchar not null,
cpf varchar not null unique,
---o char(1) not null,
nascimento date not null,
idade integer not null,
rg varchar not null unique,
datacadastro date not null,
email varchar not null unique,
idendereco integer not null,
idtelefone integer not null
)

create table tb_enderecos(
idendereco integer primary key,
rua varchar not null,
numero integer ,
complemento varchar,
bairro varchar not null,
cep integer not null,
idcidade integer
)

create table tb_cidades(
idcidade integer primary key,
nome varchar not null,
uf char(2) not null
)

create table tb_estados(
uf char(2) primary key,
nome varchar
)

create table tb_telefones(
idtelefone integer primary key,
numero varchar not null,
tipo varchar
)

1-Gostaria de saber se esta "modelagem" está correta

2-Como faço a consulta da quantidade de pessoas por cidade
Daniel Santos

Daniel Santos

Responder

Posts

11/12/2014

Mariana Carvalho

Para modelagem vc teria que mostrar o Diagrama de entidade relacionamento.

Sobre o select, vc quer mostrar os dados ou numeros de dados cadastrados?
Responder

11/12/2014

Daniel Santos

quantidade de pessoas de cada cidade
Responder

17/12/2014

Ronaldo Lanhellas

Postado Um minuto atras
create table tb_clientes(
idcliente integer primary key,
nome varchar not null,
cpf varchar not null unique,
---o char(1) not null,
nascimento date not null,
idade integer not null,
rg varchar not null unique,
datacadastro date not null,
email varchar not null unique,
idendereco integer not null,
idtelefone integer not null
)

create table tb_enderecos(
idendereco integer primary key,
rua varchar not null,
numero integer ,
complemento varchar,
bairro varchar not null,
cep integer not null,
idcidade integer
)

create table tb_cidades(
idcidade integer primary key,
nome varchar not null,
uf char(2) not null
)

create table tb_estados(
uf char(2) primary key,
nome varchar
)

create table tb_telefones(
idtelefone integer primary key,
numero varchar not null,
tipo varchar
)

1-Gostaria de saber se esta "modelagem" está correta

2-Como faço a consulta da quantidade de pessoas por cidade


Respondendo a sua segunda pergunta, você pode usar o GROUP BY em conjunto com o JOIN:

select ci.id, ci.nome, count(*) as quantidade_clientes from tb_clientes c join tb_enderecos e
on c.idendereco = e.idendereco 
join tb_cidades ci on e.idcidade = ci.idcidade
group by ci.id, ci.nome

Responder

03/01/2015

Marisiana Battistella

Sobre a modelagem, você apenas possibilitou o cadastro de uma pessoa física. Não acha que tem que permitir o cadastro de uma pessoa jurídica também?
Quanto ao select, o Ronaldo apresentou um exemplo, mas eu não recomendo o uso de count(*), é sempre melhor utilizar o nome do campo que será contado.
select ci.id, 
    ci.nome,
    count(c.idcliente) as quantidade_clientes
from tb_clientes c
join tb_enderecos e
on c.idendereco = e.idendereco 
join tb_cidades ci 
on e.idcidade = ci.idcidade
group by ci.id, 
      ci.nome
Responder

02/02/2015

Marisiana Battistella

Daniel, conseguistes encontrar a solução?
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar