Duvida SQL Cadastro
11/12/2014
0
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
Posts
11/12/2014
Mariana Carvalho
Sobre o select, vc quer mostrar os dados ou numeros de dados cadastrados?
17/12/2014
Ronaldo Lanhellas
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
03/01/2015
Marisiana Battistella
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
Clique aqui para fazer login e interagir na Comunidade :)