AJUDA COM CRIAÇÃO DO CODIGO

SQL Server

13/10/2013

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

Curtidas 0

Respostas

Jefferson Santos

Jefferson Santos

13/10/2013

Pode enviar as colunas das tabelas certinhas? Do nada apareceu coluna no select... tipo: UF_Cliente
GOSTEI 0
Alex Lekao

Alex Lekao

13/10/2013

Ola Francielle, boa tarde!!!

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

Abraco.

Alex - Lekao
GOSTEI 0
Jefferson Santos

Jefferson Santos

13/10/2013

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.
GOSTEI 0
Francielle Oliveira

Francielle Oliveira

13/10/2013

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
GOSTEI 0
Jefferson Santos

Jefferson Santos

13/10/2013

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.
GOSTEI 0
Alex Lekao

Alex Lekao

13/10/2013

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
GOSTEI 0
Jefferson Santos

Jefferson Santos

13/10/2013

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.
GOSTEI 0
Alex Lekao

Alex Lekao

13/10/2013

complicado... rsrsr
GOSTEI 0
Francielle Oliveira

Francielle Oliveira

13/10/2013

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
);
GOSTEI 0
Jefferson Santos

Jefferson Santos

13/10/2013

Verifique se o Left Join acima resolve seu problema. Caso não tentarei te ajudar.
GOSTEI 0
Francielle Oliveira

Francielle Oliveira

13/10/2013

Conseguir Obrigado a todos.
GOSTEI 0
Deivison Melo

Deivison Melo

13/10/2013

É 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!!
GOSTEI 0
POSTAR