Ajuda com SELECT com apelidos
Boa noite, estou com difculdade simples em criar selects, para falar a verdade perdida mesmo.
estrutura do banco.
CREATE TABLE SETORES(
COD_SETOR INT IDENTITY(1,1) PRIMARY KEY,
DESCRICAO VARCHAR(30)
);
CREATE TABLE PRODUTOS(
COD_PRODUTO INT IDENTITY(1,1) PRIMARY KEY,
COD_SETOR INT,
DESCRICAO VARCHAR(30)
);
CREATE TABLE CLIENTES(
COD_CLIENTE INT IDENTITY(1,1) PRIMARY KEY,
CPF VARCHAR(11),
NOME VARCHAR(60),
ENDERECO VARCHAR(100),
BAIRRO VARCHAR(50),
TELEFONE INT
);
CREATE TABLE VENDAS (
COD_VENDA INT IDENTITY(1,1) PRIMARY KEY,
COD_CLIENTE INT,
DATA_VENDA DATETIME,
VALOR_TOTAL FLOAT
);
CREATE TABLE VENDA_ITENS (
COD_VENDA_ITENS INT IDENTITY(1,1) PRIMARY KEY,
COD_VENDA INT,
COD_PRODUTO INT,
QTD FLOAT,
VL_UNIT FLOAT,
SUBTOTAL FLOAT
);
Quero fazer uma consulta de produtos pelo setor. alguem pode me ajudar a iniciar?
estrutura do banco.
CREATE TABLE SETORES(
COD_SETOR INT IDENTITY(1,1) PRIMARY KEY,
DESCRICAO VARCHAR(30)
);
CREATE TABLE PRODUTOS(
COD_PRODUTO INT IDENTITY(1,1) PRIMARY KEY,
COD_SETOR INT,
DESCRICAO VARCHAR(30)
);
CREATE TABLE CLIENTES(
COD_CLIENTE INT IDENTITY(1,1) PRIMARY KEY,
CPF VARCHAR(11),
NOME VARCHAR(60),
ENDERECO VARCHAR(100),
BAIRRO VARCHAR(50),
TELEFONE INT
);
CREATE TABLE VENDAS (
COD_VENDA INT IDENTITY(1,1) PRIMARY KEY,
COD_CLIENTE INT,
DATA_VENDA DATETIME,
VALOR_TOTAL FLOAT
);
CREATE TABLE VENDA_ITENS (
COD_VENDA_ITENS INT IDENTITY(1,1) PRIMARY KEY,
COD_VENDA INT,
COD_PRODUTO INT,
QTD FLOAT,
VL_UNIT FLOAT,
SUBTOTAL FLOAT
);
Quero fazer uma consulta de produtos pelo setor. alguem pode me ajudar a iniciar?
Marilia Silva
Curtidas 0
Respostas
Marisiana Battistella
25/01/2015
Para selecionar os produtos agrupando por setor:
select s.descricao as setor,
p.descricao as produto
from produtos p
inner join setores s
on p.cod_setor = s.cod_setor
group by s.descricao,
p.descricao
order by s.descricao,
p.descricao GOSTEI 0
Marisiana Battistella
25/01/2015
Para selecionar os produtos filtrando por setor basta incluir a claúsula WHERE e definir o filtro. Ex.:
select s.descricao as setor,
p.descricao as produto
from produtos p
inner join setores s
on p.cod_setor = s.cod_setor
where s.cod_setor = 1
group by s.descricao,
p.descricao
order by s.descricao,
p.descricao GOSTEI 0
Marilia Silva
25/01/2015
O primeiro deu certo, apresentou os dados, porem o segundo mostra apenas os campos.
GOSTEI 0
Marisiana Battistella
25/01/2015
O segundo vc tem que informar um código de setor que esteja cadastrado na tabela de setores e que possua produtos vinculados.
where s.cod_setor = 1
GOSTEI 0
Marilia Silva
25/01/2015
Sim, mas não trouxe nenhum dado. zerado mesmo.
GOSTEI 0
Marilia Silva
25/01/2015
Mariasiana, boa tarde, mais algumas questões que ainda estou com duvida.
nesse trecho
s.descricao é o setor, mas ele puxa todos os campos?
posso continuar com essa mesma logicas para as seleções abaixo?
- consultar produtos por venda
- consultar venda por cliente
- consultar produto por cliente
- consultar venda por setor
nesse trecho
s.descricao as setor,
s.descricao é o setor, mas ele puxa todos os campos?
posso continuar com essa mesma logicas para as seleções abaixo?
- consultar produtos por venda
- consultar venda por cliente
- consultar produto por cliente
- consultar venda por setor
GOSTEI 0
Thiago Cruz
25/01/2015
S.descricao vem sim da tabela setores e voce caso tenha nessecidade pode colocar outras colunas da tabela setores basta colocar s.NomedaColuna.
GOSTEI 0
Marilia Silva
25/01/2015
Obrigada Thiago, pode me ajudar com os outros?
GOSTEI 0
Marilia Silva
25/01/2015
Pessoal, preciso de auxilio com os outros.
GOSTEI 0
Marisiana Battistella
25/01/2015
Marilia, você conseguiu entender o código que eu postei?
Executou ele para ver como os dados são retornados e para entender o que a instrução está fazendo?
Executou ele para ver como os dados são retornados e para entender o que a instrução está fazendo?
GOSTEI 0
Marilia Silva
25/01/2015
Entendi o primeiro que postou.
GOSTEI 0
Marilia Silva
25/01/2015
Entendi o primeiro que postou.
GOSTEI 0
Marisiana Battistella
25/01/2015
O segundo é igual ao primeiro, com a diferença de que ele permite que você informe um código de setor para que o SELECT retorne apenas as informações referentes àquele setor.
GOSTEI 0
Marilia Silva
25/01/2015
Depois que entendi melhor, estava analisando o código. obrigada.
GOSTEI 0
Marisiana Battistella
25/01/2015
Por nada Marilia!!
GOSTEI 0