AJUDA COM CRIAÇÃO DO CODIGO

13/10/2013

0

ESTOU COM DUVIDA COMO FAZER CORRETAMENTE O CÓDIGO QUE DEVE MOSTRAR UM RELATÓRIO DOS PRODUTOS QUE SERÃO ENTREGUES AGRUPADOS POR CIDADE.

TB PRODUTO - COD_PRODUTO, NOME_PRODUTO, COD_FORNECEDOR.
TB CLIENTE - COD_CLIENTE, NOME_CLIENTE, CIDADE_CLIENE.
TB VENDA - VEN_CODIGO, VEN_QUANTIDADE, VEN_COD_PRODUTO, COD_CLIENTE

SELECT NOME_PRODUTO, UF_CLIENTE,
(SELECT SUM(VEN_QUANTIDADE) FROM VENDA WHERE VENDA.VEN_COD_PRODUTO = ENCOMENDAS.COD_PRODUTO)
As VENDA
FROM ENCOMENDAS, PRODUTO;

TA SAINDO REPETIDO VARIAS VEZES O ESTADO DO CLIENTE
Francielle Oliveira

Francielle Oliveira

Responder

Posts

14/10/2013

Jefferson Santos

Pode enviar as colunas das tabelas certinhas? Do nada apareceu coluna no select... tipo: UF_Cliente
Responder

14/10/2013

Alex Lekao

Ola Francielle, boa tarde!!!

esperimenta colocar o group by no subselect e/ou no select principal.

Abraco.

Alex - Lekao
Responder

14/10/2013

Jefferson Santos

Francielle,
Ira aparecer varias vezes a UF_Cliente pois um cliente pode fazer 1 ou mais encomendas o que faz com que altere o
VENDA.VEN_COD_PRODUTO = ENCOMENDAS.COD_PRODUTO
exemplo se eu fizer três compras vou ter três VEN_COD_PRODUTO
ou seja, vou aparecer 3 vezes no select
utilizando group by ou não.
Responder

14/10/2013

Francielle Oliveira

ta saindo assim:

NOME_PRODUTO COD_CLIENTE NOME_CLIENTE VEN_QUANTIDADE
---------------------- ------------------ ----------------------- -----------------------
Caneta 44 VERA
Caderno 44 VERA 3
Borracha 44 VERA
Caneta 61 LEANDRO
Caderno 61 LEANDRO 3
Borracha 61 LEANDRO
Caneta 41 FRAN
Caderno 41 FRAN 3
Borracha 41 FRAN
Responder

14/10/2013

Jefferson Santos

Adicione uma condição onde where VEN_QUANTIDADE is not null
Para que não traga VEN_QUANTIDADE não seja Nulo.
Me diga se isso ajudou.
Responder

15/10/2013

Alex Lekao

Oi Francielle,

tente esse codigo se ajuda.


SELECT 
   C.UF,
   C.CIDADE,
   E.NOME_PRODUTO,
   SUM(E.VEN_QUANTIDADE) AS QTD
FROM ENCONMENDAS AS E
LEFT JOIN CLIENTE AS C ON C.CODCLI = V.CODCLI
LEFT JOIN PRODUTO AS P ON P.COD_PRODUTO = E.COD_PRODUTO
GROUP BY C.UF,C.CIDADE,E.NOME_PRODUTO


nao sei bem se eh isso que ta querendo nem se vai funcionar, sem a estrutura da tabela e sem alguns dados para testar fica um pouco dificil.

Espero que ajude.

Abraco.

Alex - Lekao
Responder

15/10/2013

Jefferson Santos

Ta muito difícil ajudar sem a estrutura certa da tabela.
A maioria dos post's informam algumas colunas e quando mostram montando o código
surgem varias colunas não mencionadas na estrutura das tabelas.
Responder

15/10/2013

Alex Lekao

complicado... rsrsr
Responder

15/10/2013

Francielle Oliveira

Ta ai as tabelas que estou usando..

CREATE TABLE CLIENTE
(COD_CLIENTE NUMBER(4) CONSTRAINT PK_CLIENTE PRIMARY KEY,
NOME_CLIENTE VARCHAR2(30) NOT NULL,
UF_CLIENTE VARCHAR2(2) NOT NULL,
CIDADE_CLIENTE VARCHAR2(30) NOT NULL
);

CREATE TABLE PRODUTO
(COD_PRODUTO NUMBER(4) CONSTRAINT PK_PRODUTO PRIMARY KEY,
NOME_PRODUTO VARCHAR2(30) NOT NULL,
COD_FORNECEDOR NUMBER(4) REFERENCES FORNECEDOR(COD_FORNECEDOR)
);

CREATE TABLE VENDA
(VEN_CODIGO NUMBER CONSTRAINT PK_VENDA PRIMARY KEY,
VEN_COD_PRODUTO NUMBER(4) NULL REFERENCES PRODUTO(COD_PRODUTO),
COD_CLIENTE NUMBER(4) NOT NULL,
VEN_QUANTIDADE NUMBER(4) NOT NULL,
VEN_VALORTOTAL NUMBER(4) NOT NULL
);
Responder

15/10/2013

Jefferson Santos

Verifique se o Left Join acima resolve seu problema. Caso não tentarei te ajudar.
Responder

22/10/2013

Francielle Oliveira

Conseguir Obrigado a todos.
Responder

22/10/2013

Deivison Melo

É interessante que poste sua solução para ajudar pessoas que por ventura venha a compartilhar da mesma dúvida!

Abração e bons códigos!!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar