Sabem me dizer porque esse SELECT retorna com campos vazios?

0 respostas
palerique
Criacao das tabelas:

CREATE TABLE nota_detalhe

(

num_nota integer NOT NULL,

cod_produto integer NOT NULL,

quantidade integer NOT NULL,

valor_unitario money NOT NULL,

CONSTRAINT pk_nota_detalhe PRIMARY KEY (num_nota, cod_produto),

CONSTRAINT fk_nota_detalhe_num_nota FOREIGN KEY (num_nota)

REFERENCES nota_fiscal (num_nota) MATCH SIMPLE

ON UPDATE CASCADE ON DELETE CASCADE,

CONSTRAINT fk_nota_detalhe_produto FOREIGN KEY (cod_produto)

REFERENCES produto (codigo) MATCH SIMPLE

ON UPDATE NO ACTION ON DELETE NO ACTION

)

WITH (

OIDS=FALSE

);

ALTER TABLE nota_detalhe OWNER TO postgres;
CREATE TABLE nota_fiscal

(

num_nota serial NOT NULL,

vendedor_codigo integer NOT NULL,

cliente_codigo integer NOT NULL,

data_nota date NOT NULL,

CONSTRAINT pk_nota_fiscal_num_nota PRIMARY KEY (num_nota),

CONSTRAINT fk_nota_cliente FOREIGN KEY (cliente_codigo)

REFERENCES cliente (codigo) MATCH SIMPLE

ON UPDATE CASCADE ON DELETE CASCADE,

CONSTRAINT fk_vendedor_nota FOREIGN KEY (vendedor_codigo)

REFERENCES vendedor (codigo) MATCH SIMPLE

ON UPDATE CASCADE ON DELETE CASCADE

)

WITH (

OIDS=FALSE

);

ALTER TABLE nota_fiscal OWNER TO postgres;
CREATE TABLE vendedor

(

codigo serial NOT NULL,

nome character varying(30),

vl_salario money NOT NULL,

CONSTRAINT pk_vendedor_codigo PRIMARY KEY (codigo)

)

WITH (

OIDS=FALSE

);

ALTER TABLE vendedor OWNER TO postgres;

–Select Problemático:
SELECT v.nome, v.vl_salario, SUM(nd.valor_unitario * nd.QUANTIDADE * 0.15) AS COMISSAO, v.vl_salario + SUM(nd.valor_unitario * nd.QUANTIDADE * 0.15) AS pagamento FROM VENDEDOR v

full join nota_fiscal nf on v.codigo = nf.vendedor_codigo
full join nota_detalhe nd on nf.num_nota = nd.num_nota

GROUP BY v.nome, v.vl_salario;

A saida:

Doug Lefler; R$889,00; ;Evrágio do Ponto; R$433,00; ;Lara Macrone; R$769,77; ;Michael Macrone; R$600,00; R$977,25; R$1.577,25

"Rose Impey"; R$590,77; R$195,00; R$785,77

Lembrando que optei pelo Full Join porque alguns vendedores não venderam nada, podereia ser também um left join, mas preferi o Full.

Eu queria que na última coluna ele somasse ainda que a comissão fosse igual a 0, mas não estou conseguindo.

Será alguma coisa com o tipo Money do postgresql???

Criado 14 de abril de 2011
Respostas 0
Participantes 1