Fórum Select não retorna dados desejados #349065
15/11/2007
0
create table contrato (
codcontrato integer not null,
contratante integer not null,
dataconcl date,
datainicio date not null,
poccomissao char(2) not null collate pxw_intl,
valordivida numeric(15,2) not null
);
create table empresas (
codempresa integer not null,
tipocad varchar(20) not null collate pxw_intl,
razaosocial varchar(100) not null collate pxw_intl,
tipodoc varchar(4) not null collate pxw_intl,
numdoc varchar(14) not null collate pxw_intl
);
create table devedores (
coddevedor integer not null,
contrato integer not null,
devedor integer not null,
tipodivida integer,
valordivida decimal(15,2) not null,
datanegociacao date,
valornegociado decimal(15,2),
datapagto date,
obs descricao /* DESCRICAO = BLOB SUB_TYPE 1 SEGMENT SIZE 200 */
);
Eu gostaria de montar um select que me mostrasse:
Contratante
Devedor
Valor
Data de Contratação
OBS
Sendo que:
Nos campos CONTRATANTES E DEVEDOR não fossem mostrados os ID´s deles como está armazenado no banco e sim o nome dos mesmos.
Tentei o seguinte SQL:
with dmRC.dsContrAberto do
begin
Close;
SelectSQL.Add(´ Select DEVEDORES.VALORDIVIDA, DEVEDORES.DATANEGOCIACAO, DEVEDORES.CODDEVEDOR, CONTRATO.CODCONTRATO, CONTRATO.CONTRATANTE, DEVEDORES.OBS, EMPRESAS.RAZAOSOCIAL, EMPRESAS.CODEMPRESA)´);
SelectSQL.Add(´Where EMPRESAS.RAZAOSOCIAL on EMPRESAS.CODEMPRESA = CONTRATO.CONTRATANTE, EMPRESAS.RAZAOSOCIAL on EMPRESAS.CODEMPRESA = DEVEDORES.CODDEVEDOR, DEVEDORES.DATANEGOCIACAO IS NULL´);
Open;
end;
Alguém pode me dar uma luz no que estou fazendo de errado...
Desde já agradeço a paciencia e ajuda de vocês
Bjx
Lightshine
Curtir tópico
+ 0Posts
17/11/2007
Micheus
Parece estar faltando as cláusulas JOIN
Gostei + 0
17/11/2007
Micheus
Parece estar faltando as cláusulas JOIN e FROM, dê uma olhada.
Abraços
Gostei + 0
17/11/2007
Martins
Select D.VALORDIVIDA, D.DATANEGOCIACAO, D.CODDEVEDOR, C.CODCONTRATO, C.CONTRATANTE, D.OBS, E.RAZAOSOCIAL, E.CODEMPRESA FROM DEVEDORES D, CONTRATO C, empresas E INNER JOIN EMPRESAS on E.CODEMPRESA = C.CONTRATANTE AND E.CODEMPRESA = D.CODDEVEDOR AND D.DATANEGOCIACAO IS NULL;
Seja qual for o resultado retorne aqui novamente.
Boa sorte e bons códigos.
Gostei + 0
17/11/2007
Lightshine
Assim deu certinho:
select empresas.razaosocial, contrato.datainicio, contrato.dataconcl, contrato.valordivida, contrato.poccomissao
from empresas
inner join contrato on (empresas.codempresa = contrato.contratante)
where contrato.dataconcl is null
Valeu pela força
Abraço
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)