Fórum inner join #279221
27/04/2005
0
ESTOU USANDO O CÓDIGO ABAIXO PARA SELECIONAR REGISTROS EM UMA TBL
MESTRE-DETALHE POREM, ELE SÓ RETORNA RESULTADOS QUANDO HÁ, NA TBL
DETALHE ALGUM REGISTRO...
COMO POSSO FAZER PARA QUE ELE MOSTRE TODOS OS REGISTROS INDEPENDENTE
DE QUE HAJA OU NÃO REGISTROS NA TBL DETALHE?
DEVO USAR INNER JOIN? COMO USÁ-LO? POR FAVOR ME DIGAM OMO APLICAR
ISSO NO MEU CASO!!
DESDE JÁ MEU MUITO OBRIGADO!
Case rgpOpcoes.ItemIndex Of
0:
Begin
If (EdtPesquisa.Text <> ´´) Then
Begin
DMProcINSS.QryPesquisa.Close;
DMProcINSS.QryPesquisa.SQL.Clear;
DMProcINSS.QryPesquisa.SQL.Add(´SELECT * FROM TblCadProcesso, TblProcAdv, TblMovimentacao ´);
DMProcINSS.QryPesquisa.SQL.Add(´WHERE TblCadProcesso.AUTOR LIKE ´´+EdtPesquisa.Text+´¬´ ´);
DMProcINSS.QryPesquisa.SQL.Add(´AND TblCadProcesso.NUMPROCESSO = TblMovimentacao.NUMPROCESSO ´);
DMProcINSS.QryPesquisa.SQL.Add(´AND TblCadProcesso.COD_PROC_ADV = TblProcAdv.CODPROCADV ´);
DMProcINSS.QryPesquisa.SQL.Add(´AND DATACADASTRO BETWEEN :Data1´);
DMProcINSS.QryPesquisa.SQL.Add(´AND :Data2´);
DMProcINSS.QryPesquisa.parambyname(´Data1´).Value := StrToDate(Data1.Text);
DMProcINSS.QryPesquisa.parambyname(´Data2´).Value := StrToDate(Data2.Text);
DMProcINSS.QryPesquisa.SQL.Add(´ORDER BY DATACADASTRO´);
DMProcINSS.QryPesquisa.Open;
DMProcINSS.QryPesquisa.Refresh;
ContarPesquisa.Caption := IntToStr(DMProcINSS.QryPesquisa.RecordCount);
If DMProcINSS.QryPesquisa.IsEmpty Then
ShowMessage(´Nada foi Encontrado de Acordo com a sua Pesquisa´);
EdtPesquisa.SetFocus;
End
Else
ShowMessage(´Estão faltando parâmetros para a Pesquisa´);
End;
MESTRE-DETALHE POREM, ELE SÓ RETORNA RESULTADOS QUANDO HÁ, NA TBL
DETALHE ALGUM REGISTRO...
COMO POSSO FAZER PARA QUE ELE MOSTRE TODOS OS REGISTROS INDEPENDENTE
DE QUE HAJA OU NÃO REGISTROS NA TBL DETALHE?
DEVO USAR INNER JOIN? COMO USÁ-LO? POR FAVOR ME DIGAM OMO APLICAR
ISSO NO MEU CASO!!
DESDE JÁ MEU MUITO OBRIGADO!
Case rgpOpcoes.ItemIndex Of
0:
Begin
If (EdtPesquisa.Text <> ´´) Then
Begin
DMProcINSS.QryPesquisa.Close;
DMProcINSS.QryPesquisa.SQL.Clear;
DMProcINSS.QryPesquisa.SQL.Add(´SELECT * FROM TblCadProcesso, TblProcAdv, TblMovimentacao ´);
DMProcINSS.QryPesquisa.SQL.Add(´WHERE TblCadProcesso.AUTOR LIKE ´´+EdtPesquisa.Text+´¬´ ´);
DMProcINSS.QryPesquisa.SQL.Add(´AND TblCadProcesso.NUMPROCESSO = TblMovimentacao.NUMPROCESSO ´);
DMProcINSS.QryPesquisa.SQL.Add(´AND TblCadProcesso.COD_PROC_ADV = TblProcAdv.CODPROCADV ´);
DMProcINSS.QryPesquisa.SQL.Add(´AND DATACADASTRO BETWEEN :Data1´);
DMProcINSS.QryPesquisa.SQL.Add(´AND :Data2´);
DMProcINSS.QryPesquisa.parambyname(´Data1´).Value := StrToDate(Data1.Text);
DMProcINSS.QryPesquisa.parambyname(´Data2´).Value := StrToDate(Data2.Text);
DMProcINSS.QryPesquisa.SQL.Add(´ORDER BY DATACADASTRO´);
DMProcINSS.QryPesquisa.Open;
DMProcINSS.QryPesquisa.Refresh;
ContarPesquisa.Caption := IntToStr(DMProcINSS.QryPesquisa.RecordCount);
If DMProcINSS.QryPesquisa.IsEmpty Then
ShowMessage(´Nada foi Encontrado de Acordo com a sua Pesquisa´);
EdtPesquisa.SetFocus;
End
Else
ShowMessage(´Estão faltando parâmetros para a Pesquisa´);
End;
Alexandretavares
Curtir tópico
+ 0
Responder
Posts
27/04/2005
Raserafim
alexandre, você deverá usar o LEFT JOIN, assim vc estará dizendo que quer todos os registros do lado esquerdo do relacionamento e apenas os que tenham correspondência do lado direito. tente o seguinte:
pelo que entendi o mestre é o TblCadProcesso, fiz o exemplo assumindo assim, caso não seja tem que trocar as posições.
... DMProcINSS.QryPesquisa.SQL.Add(´SELECT * FROM TblCadProcesso LEFT JOIN TblMovimentacao ON TblCadProcesso.NUMPROCESSO = TblMovimentacao.NUMPROCESSO LEFT JOIN TblProcAdv ON TblCadProcesso.COD_PROC_ADV = TblProcAdv.CODPROCADV ´); DMProcINSS.QryPesquisa.SQL.Add(´WHERE TblCadProcesso.AUTOR LIKE "´+EdtPesquisa.Text+´¬" ´); DMProcINSS.QryPesquisa.SQL.Add(´AND DATACADASTRO BETWEEN :Data1´); DMProcINSS.QryPesquisa.SQL.Add(´AND :Data2´); ...
pelo que entendi o mestre é o TblCadProcesso, fiz o exemplo assumindo assim, caso não seja tem que trocar as posições.
Responder
Gostei + 0
28/04/2005
Alexandretavares
Muito Obrigado pela dica ´raserafim´ !
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)