Opa,
2015-06-08 15:00 GMT-03:00 Matheus Saraiva <[email protected]>: > Tenho as seguintes tabelas: > CREATE TABLE "QUARTOS" > ( > "numero_quarto" VARCHAR(5) NOT NULL, > "tipo_quarto" INTEGER NOT NULL, > "valor_quarto" NUMERIC(7,2) NOT NULL, > "capacidade_quarto" SMALLINT NOT NULL, > CONSTRAINT TIPOQUARTO_FK FOREIGN KEY("tipo_quarto") REFERENCES > "TIPOSQUARTO"("id_tipoquarto") ON UPDATE CASCADE, > CONSTRAINT QUARTOS_PK PRIMARY KEY(numero_quarto) > ); > > CREATE TABLE "PESSOAS" > ( > "id_pessoa" SERIAL NOT NULL, > "nome_pessoa" VARCHAR(50) NOT NULL, > "endereco_pessoa" INTEGER NOT NULL, > "telefone_pessoa" VARCHAR(14), > "email_pessoa" VARCHAR(100), > "login_pessoa" VARCHAR(20), > "senha_pessoa" VARCHAR(32), > "tipo_pessoa" SMALLINT NOT NULL DEFAULT 1, > "endnum_pessoa" VARCHAR(5) NOT NULL, > CONSTRAINT PESSOAS_EMAIL_UK UNIQUE("email_pessoa"), > CONSTRAINT PESSOAS_LOGIN_UK UNIQUE("login_pessoa"), > CONSTRAINT ENDERECO_FK FOREIGN KEY("endereco_pessoa") REFERENCES > "ENDERECOS"("id_endereco") ON UPDATE CASCADE, > CONSTRAINT PESSOAS_PK PRIMARY KEY(id_pessoa) > ); > > CREATE TABLE "CLIENTES" > ( > "pessoa_cliente" INTEGER NOT NULL, > "rg_cliente" VARCHAR(20) NOT NULL, > "cpf_cliente" VARCHAR(11) NOT NULL, > CONSTRAINT PESSOA_FK FOREIGN KEY("pessoa_cliente") REFERENCES > "PESSOAS"("id_pessoa") ON UPDATE CASCADE, > CONSTRAINT clientes_rg_ukey UNIQUE("rg_cliente"), > CONSTRAINT clientes_cpf_ukey UNIQUE("cpf_cliente"), > CONSTRAINT CLIENTES_PK PRIMARY KEY(pessoa_cliente) > ); > > CREATE TABLE "ESTADIAS" > ( > "id_estadia" SERIAL NOT NULL, > "cliente_estadia" INTEGER NOT NULL, > "quarto_estadia" VARCHAR(5) NOT NULL, > "entrada_estadia" TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, > "saida_estadia" TIMESTAMP(0), > "valor_estadia" NUMERIC(7,2), > "valortotal_estadia" NUMERIC(7,2) > CONSTRAINT CLIENTE_FK FOREIGN KEY("cliente_estadia") REFERENCES > "CLIENTES"("pessoa_cliente"), > CONSTRAINT QUARTO_FK FOREIGN KEY("quarto_estadia") REFERENCES > "QUARTOS"("numero_quarto"), > CONSTRAINT ESTADIA_CLI_QUA_ENT_UKEY > UNIQUE("cliente_estadia","quarto_estadia","entrada_estadia"), > CONSTRAINT ESTADIAS_PK PRIMARY KEY(id_estadia) > ); > > > CREATE TABLE "LIGACOES" > ( > "quarto_ligacao" VARCHAR(5) NOT NULL, > "datahora_ligacao" TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, > "numero_ligacao" VARCHAR(14) NOT NULL, > "duracao_ligacao" NUMERIC(7,2), > "valortotal_ligacao" NUMERIC(7,2), > "tipo_ligacao" INTEGER NOT NULL DEFAULT 1, > CONSTRAINT LIGACOES_PK PRIMARY > KEY("quarto_ligacao","datahora_ligacao"), > CONSTRAINT QUARTO_FK FOREIGN KEY("quarto_ligacao") REFERENCES > "QUARTOS"("numero_quarto"), > CONSTRAINT TIPO_FK FOREIGN KEY(tipo_ligacao) REFERENCES > "TIPOSLIGACAO"("id_tipoligacao") > ); > > > Meu select está dando erro dizendo que eu preciso usar > "PESSOAS".nome_pessoa na clausula GROUP BY. Seu eu fiser como pede ela > passa a pedir as outras colunas também. > > SELECT > "PESSOAS".nome_pessoa, > "CLIENTES".rg_cliente, > "CLIENTES".cpf_cliente, > "ESTADIAS".quarto_estadia, > "ESTADIAS".entrada_estadia, > CURRENT_DATE - DATE("ESTADIAS".entrada_estadia) AS diarias, > "ESTADIAS".valor_estadia, > SUM("LIGACOES".valortotal_ligacao) AS totalligacoes > FROM > "ESTADIAS" > JOIN > "PESSOAS" ON "PESSOAS".id_pessoa = "ESTADIAS".cliente_estadia > JOIN > "CLIENTES" ON "CLIENTES".pessoa_cliente = > "ESTADIAS".cliente_estadia > JOIN > "LIGACOES" ON "LIGACOES".quarto_ligacao = "ESTADIAS".quarto_estadia > AND > "LIGACOES".datahora_ligacao >= "ESTADIAS".entrada_estadia > WHERE > "ESTADIAS".id_estadia = 1 > > > Segue o erro > > > "ERROR: column "PESSOAS.nome_pessoa" must appear in the GROUP BY clause > or be used in an aggregate function > LINE 2: "PESSOAS".nome_pessoa, > Sim, você está usando o SUM, e para isso precisa do GROUP BY, não tem como fugir, além disso, todas as colunas do teu SELECT terão que aparecer no GROUP BY, isso é por causa da função de agregação SUM. Diga qual o resultado esperado, assim talvez possamos de ajudar neste SELECT. > ^" > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > Atenciosamente -- JotaComm http://jotacomm.wordpress.com
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
