Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida Com Select


marceloufc

Pergunta

Pessoal to precisando de ajuda num comando select.

Vou postar minha estrutura de tabelas e meu comando que tentei fazer.

Tabelas :

CREATE TABLE TABCLIENTE( vcCodCliente VARCHAR(5) NOT NULL ,

vcRzSocial VARCHAR(40) , vcCnpj VARCHAR(20) NOT NULL , vcEndereco VARCHAR(40) ,

vcBairro VARCHAR(30) , vcCep VARCHAR(10) ,vcEstado VARCHAR(2) ,

vcMunicipio VARCHAR(30) , vcFone VARCHAR(13) , vcAtividade VARCHAR(50) ,

vcComentario VARCHAR(100) , PRIMARY KEY(vcCodCliente) ) TYPE=INNODB;

CREATE TABLE TABFILIAL( vcCnpj VARCHAR(20) NOT NULL ,

parentTabCliente VARCHAR(5) NOT NULL ,vcFilialNum VARCHAR(5) ,

vcEndereco VARCHAR(50) , vcBairro VARCHAR(40) , vcCep VARCHAR(20) ,

PRIMARY KEY(vcCnpj) ,

INDEX par_ind (parentTabCliente), FOREIGN KEY (parentTabCliente) REFERENCES TABCLIENTE(vcCodCliente)

ON DELETE CASCADE ON UPDATE CASCADE

) TYPE=INNODB;

CREATE TABLE TABCONTA( vcCodConta VARCHAR(20) NOT NULL ,

vcCodRed VARCHAR(10) DEFAULT ' ' , parentTabCliente VARCHAR(5) NOT NULL,

cTipo CHAR(1) NOT NULL ,vcDescricao VARCHAR(50) NOT NULL ,

PRIMARY KEY(vcCodRed , parentTabCliente , vcCodRed ),

INDEX par_ind (parentTabCliente), FOREIGN KEY (parentTabCliente) REFERENCES TABCLIENTE(vcCodCliente)

ON DELETE CASCADE ON UPDATE CASCADE

) TYPE=INNODB;

CREATE TABLE TABHISTORICO( vcCodHistorico VARCHAR(5) NOT NULL ,

vcDescricao VARCHAR(40) NOT NULL ,PRIMARY KEY(vcCodHistorico) ) TYPE=INNODB;

CREATE TABLE TABLANCAMENTO( ID_Lancamento INT UNSIGNED NOT NULL AUTO_INCREMENT ,

parentTabCliente VARCHAR(5) NOT NULL , parentTabContaD VARCHAR(10) DEFAULT ' ' , parentTabContaC VARCHAR(10) DEFAULT ' ' ,

parentTabHistorico VARCHAR(5) NOT NULL , vcLote VARCHAR(10) NOT NULL , datData DATE NOT NULL , dbValor DOUBLE(6,2) NOT NULL,

vcAux1 VARCHAR(30) DEFAULT ' ', vcAux2 VARCHAR(30) DEFAULT ' ', vcAux3 VARCHAR(30) DEFAULT ' ', vcAux4 VARCHAR(30) DEFAULT ' ',

PRIMARY KEY( ID_Lancamento ) ,

INDEX ( parentTabCliente ) , FOREIGN KEY( parentTabCliente ) REFERENCES TABCLIENTE( vcCodCliente ) ON DELETE CASCADE ON UPDATE CASCADE,

INDEX ( parentTabContaD ) , FOREIGN KEY( parentTabContaD ) REFERENCES TABCONTA( vcCodRed ) ON DELETE CASCADE ON UPDATE CASCADE,

INDEX ( parentTabContaC ) , FOREIGN KEY( parentTabContaC ) REFERENCES TABCONTA( vcCodRed ) ON DELETE CASCADE ON UPDATE CASCADE,

INDEX ( parentTabHistorico ) , FOREIGN KEY( parentTabHistorico ) REFERENCES TABHISTORICO( vcCodHistorico ) ON DELETE CASCADE ON UPDATE CASCADE

) TYPE=INNODB;

Consulta : Minha tabela de Lancamentos contem dois campos onde ambos são chave primarias na tabela de Contas(vcCodReduzido).

select L.ID_Lancamento ID , Cl.vcrzSocial razaoSocial,Ct.vcDescricao As ContaDebito , Ct.vcDescricao As ContaCredito , H.vcDescricao Historico,L.vcLote Lote

From TabCliente Cl , TabConta Ct , TabHistorico H , TabLancamento L

where L.parentTabCliente = Cl.vcCodCliente

and L.parentTabContaD = Ct.vcCodRed -- Erro aqui

and L.parentTabContaC = Ct.vcCodRed -- Erro aqui

and L.parentTabHistorico = H.vcCodHistorico

Como faço de forma correta este select ?

Grato pela atenção!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Cara valeu pela ajuda , porem este tipo de situação eu sei resolver.Atualmente preciso de ajuda em outra situação.

Minha tabConta : codConta,CodReduzido,Descricao

Minha tabLancamento : ContaD , ContaC etc. Estes dois campos recebem CodReduzido da tabConta.

select L.ID_Lancamento ID , Cl.vcrzSocial razaoSocial,Ct.vcDescricao As ContaDebito , Ct.vcDescricao As ContaCredito , H.vcDescricao Historico,L.vcLote Lote

From TabCliente Cl , TabConta Ct , TabHistorico H , TabLancamento L

where L.parentTabCliente = Cl.vcCodCliente

and L.parentTabContaD = Ct.vcCodRed -- Erro aqui

and L.parentTabContaC = Ct.vcCodRed -- Erro aqui

and L.parentTabHistorico = H.vcCodHistorico

Quero mostrar a descrição tanto da contaC como da ContaD.

Como faço?

Valeu!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...